{
    "componentChunkName": "component---src-components-blog-post-jsx",
    "path": "/blog/setting-up-zsh-with-autosuggestions/",
    "result": {"data":{"site":{"siteMetadata":{"author":"Monica Powell","siteUrl":"https://www.aboutmonica.com"}},"mdx":{"id":"3d786ace-9d06-5df3-84e2-17d531796517","timeToRead":2,"body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Setting Up Shell with zsh and Autosuggestions\",\n  \"date\": \"2021-05-14T13:12:21.580Z\",\n  \"template\": \"post\",\n  \"draft\": true,\n  \"slug\": \"setting-up-zsh-with-autosuggestions\",\n  \"category\": [\"tutorial\"],\n  \"description\": \"This post is an overview of my recent migration from bash to zsh.\",\n  \"tags\": [\"terminal\", \"developer productivity\"]\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar TableOfContents = makeShortcode(\"TableOfContents\");\nvar Callout = makeShortcode(\"Callout\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"This post is an overview of how I recently migrated my bash history and settings from Bash to zsh and set up autosuggestions for my terminal. For a while whenever I opened a new terminal window,the below message greeted me to prompt me to migrate to zsh, which is the default shell for newer macOS versions (as of macOS Catalina):\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"              *\\n              *\\n            * | *\\n      * * * \\\\|O|/ * * *\\n       \\\\o\\\\o\\\\o|O|o/o/o/\\n       (<><><>O<><><>)\\n        '==========='\\n\\nThe default interactive shell is now zsh.\\nTo update your account to use zsh, please run `chsh -s /bin/zsh`.\\nFor more details, please visit https://support.apple.com/kb/HT208050.\\n\")), mdx(TableOfContents, {\n    headings: props.tableOfContents,\n    mdxType: \"TableOfContents\"\n  }), mdx(\"p\", null, \"Migrating to zsh while carrying over some of your bash settings is a bit more involved then just running \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"chsh -s /bin/zsh\"), \". When I was migrating to zsh I knew that I wanted to be able to use autosuggestions out of the box to auto-populate and enable more robust re-use of commands than setting up aliases. Aliases involve mapping a shorter or more memorable command to another.\"), mdx(\"h2\", {\n    \"id\": \"set-zsh-as-default-for-macos-account\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#set-zsh-as-default-for-macos-account\",\n    \"aria-label\": \"set zsh as default for macos account permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Set zsh as default for macOS account\"), mdx(\"p\", null, \"Update macOS account to use zsh as the default by running \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"chsh -s /bin/zsh\"), \". After running this command your terminal \", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"should\"), \" look different. For me , after running this command then when I opened a new terminal window my terminal looked different as I prior to converting to zsh I had the \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://github.com/minamarkham/yonce\"\n  }, \"Yonc\\xE9 Bash It\"), \" theme set up which zsh doesn't support.\"), mdx(\"h2\", {\n    \"id\": \"set-zsh-as-the-default-for-vscode\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#set-zsh-as-the-default-for-vscode\",\n    \"aria-label\": \"set zsh as the default for vscode permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Set zsh as the default for VSCode\"), mdx(\"p\", null, \"If you use VSCode or another IDE with an integrate terminal then you may need to update it to use zsh as the default for the integrated terminal or else it will default to the previous default.\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Open VSCode\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Press \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"SHIFT + COMMAND + P\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"type in \\\"Terminal\\\" and select \\\"Terminal: Select Default Profile\\\" from the dropdown\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"select zsh\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"new terminals opened in VSCode should now use zsh.\")), mdx(\"p\", null, mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"/media/selectdefaultprofileinvscode.gif\",\n    \"alt\": \"gif of selecting default profile in VSCode\"\n  })), mdx(\"h2\", {\n    \"id\": \"migrate-information-from-bash-to-zsh\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#migrate-information-from-bash-to-zsh\",\n    \"aria-label\": \"migrate information from bash to zsh permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Migrate information from bash to zsh\"), mdx(\"h3\", {\n    \"id\": \"copy-bash-history-over-to-zsh\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#copy-bash-history-over-to-zsh\",\n    \"aria-label\": \"copy bash history over to zsh permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Copy bash history over to zsh\"), mdx(\"p\", null, \"It is helpful to migrate over some of the contents from \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"~/.bash_history\"), \" in order to better take advantage of zsh's autocomplete features shortly after migrating. Bash has a file \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"~/.bash_history\"), \" that stores previously run commands and zsh has \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"~/.zsh_history\"), \".\"), mdx(Callout, {\n    mdxType: \"Callout\"\n  }, \"I copied 1000 of the most recent commands (a.k.a 1000 lines) from my ~/.bash_history to ~/.zsh_history. But you can adjust this number to accommodate the amount of history that you're interested in migrating over.\"), mdx(\"h3\", {\n    \"id\": \"copy-environment-variables-from-bash-to-zsh\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#copy-environment-variables-from-bash-to-zsh\",\n    \"aria-label\": \"copy environment variables from bash to zsh permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Copy environment variables from Bash to zsh\"), mdx(\"p\", null, \"zsh should be aware of any relevant env variables that are in \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"~./bash_profile\"), \". Env variables in zsh live in \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"~./zshenv\"), \". Depending on what's contained in your \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"~./bash_profile\"), \" some items may be better suited to be placed in other \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"zsh\"), \" files like \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"~/.zshrc\"), \".\"), mdx(\"h2\", {\n    \"id\": \"install-a-zsh-plugin-manager\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#install-a-zsh-plugin-manager\",\n    \"aria-label\": \"install a zsh plugin manager permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Install a zsh plugin manager\"), mdx(\"p\", null, \"Software like \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://ohmyz.sh\"\n  }, \"oh-my-zsh\"), \" can help enable more robust zsh configurations than the default zsh. You can install oh-my zsh with the following steps:\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Run the following to install ohmyzsh on your computer.\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"sh -c \\\"$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)\\\"\\n\")), mdx(\"p\", null, \"Visit \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://ohmyz.sh/\"\n  }, \"https://ohmyz.sh/\"), \" for the latest installation instructions.\"), mdx(\"ol\", {\n    \"start\": 2\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"After successfully installing oh my zsh you may see the following confirmation in your terminal\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"Cloning Oh My Zsh...\\nCloning into '/Users/monica/.oh-my-zsh'...\\nremote: Enumerating objects: 1210, done.\\nremote: Counting objects: 100% (1210/1210), done.\\nremote: Compressing objects: 100% (1175/1175), done.\\nremote: Total 1210 (delta 20), reused 1096 (delta 15), pack-reused 0\\nReceiving objects: 100% (1210/1210), 843.85 KiB | 9.48 MiB/s, done.\\nResolving deltas: 100% (20/20), done.\\n\\nLooking for an existing zsh config...\\nFound ~/.zshrc. Backing up to /Users/monica/.zshrc.pre-oh-my-zsh\\nUsing the Oh My Zsh template file and adding it to ~/.zshrc.\\n\\n         __                                     __\\n  ____  / /_     ____ ___  __  __   ____  _____/ /_\\n / __ \\\\/ __ \\\\   / __ `__ \\\\/ / / /  /_  / / ___/ __ \\\\\\n/ /_/ / / / /  / / / / / / /_/ /    / /_(__  ) / / /\\n\\\\____/_/ /_/  /_/ /_/ /_/\\\\__, /    /___/____/_/ /_/\\n                        /____/                       ....is now installed!\\n\\n\\nBefore you scream Oh My Zsh! please look over the ~/.zshrc file to select plugins, themes, and options.\\n\\n\\u2022 Follow us on Twitter: https://twitter.com/ohmyzsh\\n\\u2022 Join our Discord server: https://discord.gg/ohmyzsh\\n\\u2022 Get stickers, shirts, coffee mugs and other swag: https://shop.planetargon.com/collections/oh-my-zsh\\n\")), mdx(\"ol\", {\n    \"start\": 3\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Check out the docs \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://github.com/ohmyzsh/ohmyzsh/wiki\"\n  }, \"https://github.com/ohmyzsh/ohmyzsh/wiki\"), \" to view some of the available themes and plugins.\")), mdx(\"h2\", {\n    \"id\": \"setup-zsh-autosuggestions\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#setup-zsh-autosuggestions\",\n    \"aria-label\": \"setup zsh autosuggestions permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Setup zsh-autosuggestions\"), mdx(\"p\", null, mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://github.com/zsh-users/zsh-autosuggestions\"\n  }, \"zsh-autosuggestions\"), \" is a plugin that add nice autocomplete functionality to zsh. Below are instructions for installing it as a plugin for oh-my-zsh to use.\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Clone Oh My Zsh repository into \\\\$ZSH_CUSTOM/plugins\\n\", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"git clone https://github.com/zsh-users/zsh-autosuggestions \\\\${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Open \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"~/.zshrc\"), \" and add the plugin to the list of plugins for Oh My Zsh to load inside of ~/.zshrc.\")), mdx(Callout, {\n    mdxType: \"Callout\"\n  }, \" \", \"My plugins in ~/.zshrc looked like \\\"plugins=(git)\\\" when I opened the file so I updated to add zsh-autosuggestions like \\\"plugins=(git zsh-autosuggestions)\\\"`.\", \" \"), mdx(\"ol\", {\n    \"start\": 3\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Start a new terminal session and commands should now autocomplete based off of the history in ~./zsh_history` (which is added to every time you type a new command)\")), mdx(\"p\", null, mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"/media/zshautosuggestions.gif\",\n    \"alt\": \"gif of the final CLI created by this tutorial\"\n  })), mdx(\"hr\", null), mdx(\"p\", null, \"I am planning on cleaning up my \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"~./zsh_history\"), \" a bit if I run into previous commands that had typos or misconfigure paths in order to ensure that autosuggestions isn't recommending my previous mistakes.\"), mdx(\"p\", null, \"I am looking forward to learning more about the zsh ecosystem as so far I am enjoying the autosuggestions plugin and I've heard that the ecosystem has some nice functionality including how it recursively search files, spell checking and robust themes and plugin support.\"));\n}\n;\nMDXContent.isMDXComponent = true;","tableOfContents":{"items":[{"url":"#set-zsh-as-default-for-macos-account","title":"Set zsh as default for macOS account"},{"url":"#set-zsh-as-the-default-for-vscode","title":"Set zsh as the default for VSCode"},{"url":"#migrate-information-from-bash-to-zsh","title":"Migrate information from bash to zsh","items":[{"url":"#copy-bash-history-over-to-zsh","title":"Copy bash history over to zsh"},{"url":"#copy-environment-variables-from-bash-to-zsh","title":"Copy environment variables from Bash to zsh"}]},{"url":"#install-a-zsh-plugin-manager","title":"Install a zsh plugin manager"},{"url":"#setup-zsh-autosuggestions","title":"Setup zsh-autosuggestions"}]},"frontmatter":{"title":"Setting Up Shell with zsh and Autosuggestions","date":"May 14, 2021","description":"This post is an overview of my recent migration from bash to zsh.","tags":["terminal","developer productivity"]}},"allWebMentionEntry":{"edges":[]}},"pageContext":{"permalink":"https://www.aboutmonica.com/blog/setting-up-zsh-with-autosuggestions/","slug":"/blog/setting-up-zsh-with-autosuggestions/","prev":{"id":"ed27fce5-1521-5497-9517-5be0e340e5a0","frontmatter":{"title":"Tips for Debugging Software like a Detective","category":["reflection"],"date":"2021-05-15T15:35:06.571Z","slug":"tips-for-debugging-software-like-a-detective","tags":["software","developer productivity"],"redirects":null},"fields":{"slug":"/blog/tips-for-debugging-software-like-a-detective/"}},"next":{"id":"0a53e3c0-7455-561b-82df-2961f6c0dec7","frontmatter":{"title":"My SVG Creation Process","category":["tutorial"],"date":"2021-04-13T04:58:13.499Z","slug":"my-svg-creation-process","tags":["SVG","design"],"redirects":null},"fields":{"slug":"/blog/my-svg-creation-process/"}}}},
    "staticQueryHashes": ["1977783444","764694655"]}