You are on page 1of 36
How to install and set up TM Ui Cele ry Er) Bred Ceres eRe Cees Cec me Cer Cee] Configure the terminal to use the new shell and font ee ener Cer ee et eo Reena Seca Conclusion Nee een ee Rs Ne FOR re RCO Rt eel MUR Lee O emai getting uncomfortable to use with the way keyboard shortcuts are handled. Moving turned out to be a great decision, and even wrote Penne ee eae en Swat in a ROE Par eo eames Ido nearly all of my work on a Windows machine, and for the software work that I do | use the Windows Subsystem for Linux, version 2. This works great for me, but | occasionally want to edit Pe ean ee ee eee Me acon have my Neovim setup working in Windows natively. | also have a on era re eckiraeic a) ia TERE eee MEI CuEntck cell Se COnt a? eee RnR ee ea sete See oe) Poe Re COR esc RO Pee ACR un earn eS Pree RUT RUE LC a Renn Le MRC MATT] mn Lee eR ORCS SLO Rs teed tte} ene ra kena ier they need to install to get something that: SR et) Peer oreeot sac) Serene cre ura NM ee ecu a ae CUCU Pee ese sa nr ees ar Fa ee oe eeu eee RCO CM RUM mecca Seen ec Ra ST RST things set up first to get Neovim working the way you expect. Once eee ee ee RR eM Yt ta MG ee ana ae ae Vs ESTO Ti cy Da ne hc een ee CAT en Dee Rec gc nN Windows 10 with updates applied. if you don't receive and install system updates automatically, you might hit a sticking point here Einar eeu ee Rd kcertd Dee hee eee ae Eee S TsO ane ec Rc Dg RO Sear Re Mee ce ac Sg Se eA eet ac gk eC command line things like change directories, make a directory, and run a command, If this is foreign to you, spend some time Meine nnn will be better off if you aren't starting at zero Irecommend you read this guide all the way through before starting Eo NUE cee ence en influences the following steps. ete eR eRe Mom pie Cree a ee ee Coch cua gt) your question on the Neovim subreddit, or by jumping into one of the chat rooms scattered about. The Neovim official IRC is a good option, and the Vim channel on ThePrimagen's discord server is CMe net Coro TCS STE || eran ee huey but DO NOT stick with the stock terminal that ships with windows, otherwise things won't look right. The basic terminals that ship with Windows are designed to be an entrypoint to some CLI commands Pun mCM eee Mater mee RCT eS yea better rendering, full color support, broader font support including unicode characters, and many other things. Some names come up in the Neovim community often such as Alacritty and Wezterm, but if SOEUR eee Rea a eR Ra Ret] experience. For this guide we'll use Windows Terminal Preview, which has all the latest features and is a bit easier to configure ROC el RUM i mace eRe MCRL RTL Eom old PR set ec enn SY De eee) Pare mee RCE at mak SMa e ns SMC Meee eR ere) can install it with the MSIX bundle instead, which you can find at the official github releases page here. Just make sure you are getting the version you expect. The standard version will be listed ROR Ra an) RRs an RR ae ee cao Prkeel etete Ma nT aR es os Expand it, then download the MSIXBundle that matches your OS COT nea RL) eer noe cnea heen Coons CMC ce eee eee esc knees eee ect ee el ue Na RC Denne oe Cro CT This is a critical step as many of the finer points of the Neovim display rely on additional "glyphs" to display properly. What are glyphs you ask? Simple: a character in a word is technically a glyph, Peto ee Eek Ee eee ee eae etc, Neovim uses these to build the UI one character at a time. You CO seo ago Cen Era r onto er a ke Re ee Ts) fi Then unzip (extract) the folder that you just downloaded by right clicking it and selecting "Extract all’, and then open the new, TCR me aU eee ea See ana ae Re eR aon eS eee ac ee Ree Ra eee ce Se ae) you'll get both. ea a aed aaa easy per apet ayer] eae eee ee Erenraier a nanowire eee ara aaa cee] Then right click on the group selection and select “Install for all Ree PT aE eure ees ec Elevate your permissions Soe age) enor le CRT ECM REN) terminal that is running with Administrator permissions, but first you Pen ee eR Re aM en us ea for "terminal" and you should be presented with the app you just installed at the top of the list. RIGHT click it and a menu will pop up, Pe Ck om ESE McC CC Ree SMe Sn eta ec keer Ea aR CSC) allow the app to make changes to your system. Click yes. You'll then get a new terminal window which will open the default prompt. Ne Cn ee ce asta have a shield icon indicating that. If you don't run the terminal as an admin, many of the installation CeCe ORS MRT Rm RC Races CUS MD UCT ET Cig Many of the things we're going to need can be installed using a eC ce CUCU Cun ccc Pe MN aC Re ne a Ce RECA MIC Cea Cun Re AS RC R ea Ukiah Ten eat hee DCN} kee Om I ee ence a guide. You can find it here with installation instructions. You can Pee eee Meese Mee a een "Powershell" using the windows search tool, or locating "Windows os Mena? For the rest of this guide I'll give you commands for both package CULES ala See ee ceca en harins CEOS in Cor Ts a] Des reat eC ee Ra the program that interacts with system services and other programs to actually do anything, The shell is what gives you the prompt SED es acu ea a eee ee ee called Command Prompt, as well as another shell called Windows Powershell, and they are both very basic with very limited features. They exist as an entry point to the CLI for various system tools, not atte Cece Oe ane eee render the basic Neovim interface, but neither of these will work correctly for Neovim once you start adding any Neovim eon TeMe ey hone heehee Gere unm ene ccome eka Sec Mao RSC ere ec rere ee eae Gece tem ELC a asked to hit "Y" a few times during the install, this is fine. Once the ec ese oe este ea ana along the top bar locate the down arrow to the right of your open tab and click it. You'll be presented with a window that looks roughly like this. SOR em eco Ree Sore PR Se acts en noe sens is the entry | have for just "PowerShell" which | underlined in red - Nee CAS CUM eee a UEC Oe Mae a ut Rc ence ET Re SMe Sn RR na ee Ci Ifyou have git installed and you opted in to Git Bash, you can also Peete Cog Te rem Ue ok eke eps) Ce CR CU CRC RUC PE Rtg OES nae nes Ms ace eae] you'll be presented with a UI to adjust how the terminal app works ae RRR Ce eis Ce in oct) = area a Ee Ra Rue es aa Startup" option, and the top section will be "Default Profile”. In that Pee Roe ee ae ae sas Coe PaaS ea Next, go to the "Defaults" section on the left side menu. Ure mM ene em ee aU Toso een Became aio) en SU Re RR Re a eo OORT right is a dropdown menu, and underneath is a checkbox to "show OT MeL Lae Rol Bellas oe DN ee eta eto epee a "CaskaydiaCove NF" and select it Conran Finally, at the bottom right of the terminal UI will be a save button. Hit it to save your new settings, and your terminal should now be RRC Cody Installing Neovim el MeCN Rau nc cana eC miuiseriom Tail stel like we did a few sections ago. It should now automatically open in PowerShell. Now we can install Neovim, which should be very RECT MMC RMU Ce ce Cea eccrine see Pree er TU aaah aa twice, but the package manager should install it and confirm when finished. Also you may get a message that one or more of the packages required a reboot. If so, you'll need to restart the ea Now you need to close the terminal app again and reopen it and then type in nvin --version. If you don't get an error and instead get the version information, neovim is installed, You can now run the CD MURR ae ta You also need to check that the Neovim version is up to date. As of Ree RU hd URE ee RU Read at least version 0.8.0. When | run the version check | get this in the STERN NSE sR cer Retro ys If your package manager isn't giving you a new enough version, you can also install using the instructions from the Github releases page, Ree scien eee ey tutor and user manual. If you haven't already, work through the tutor and get used to the motions before moving on to the next sr Talolay Install Git nach cum ue monet you can run git --version and if you get a version number instead CMC ie Gee Uc name EOC Rt ene c One RoR CIR le Ie MRC Sy emer ea grey artes yee ee Ca ASU a ORI Recs Ceca RC you are done. (you might see a pattern forming with the package managers, they are really easy to use. | encourage you to research them more if you haven't already) OCC mete est) VEC Ca Ieeca hee UR nacre eel mT) things like the Telescope and Treesitter plugins. To that end, I'll show you how to install a couple of system dependencies while we go and then we'll install Kickstartnvim to get an idea of how a configuration SIL CRR Nee hee To start out, the Telescope plugin uses RipGrep for its live-grep PT ce eR ee Ne ce DUE aUr ae Re CaEDTA a DSc Rca ae eee iene ene atc Poe eM a ae Oca PoE EE Cac Next we need to talk about Runtime Paths. When Neovim starts up, it searches a certain group of directories in a certain order to look for relevant files to load. If you open Neovim and then run the Erne SCR soce emo ete ree ete Can ee ee uN Re aay assuming a Unix based system like Linux or MacOS, with a certain take ar nee a eee ecu ls there are just a few things you need to know that will help you make Rage RR uate Une oem ee solved with this information. Tete en eter ceay I ea een eC ce eer} LRU R alee tee Cre UC sO RUC e elle) Clee UC ISOC Cy (eee ee aur) The only time the windows directories will be different is if Pe ume neers aati a Eels (geeks ae PAS Rs ER rare on windows. If you run into this, google how to check the PEN Rene Ma UE eA Rr sR Neon Recs Sore UN Rae eee cS igre} Neovim will use by opening Neovim and running ch xdg Next, we can make a directory for our config to live and a starter Seema oe SN a a oC OT: Re eT AEM) Co Change directories into your Local config: ed appoata\Local eee cae aer cane) Move into the Neovim directory: cd avin Ne Cees eh a i conn catty A quick aside on Powershell commands: The actual commands Powershell uses are very descriptive, but also very verbose. A aes a ee ae eee Powershell as a convenience feature, meaning the commands above should work out of the box. For example, cd is an alias for the set-Location Powershell command. If you get something wrong while following the steps, rm is NOT an alias and you'll Dr Rae ee ea You can also get help in the terminal on pretty much any built- in command by running Get-Help , so for aC eee ed Now open the init file you just created: nvim init.tua and you'll be Reece EEC aN tie Ne Ce ccc ep emacs tom SC Cun Ta Reel Re ae Ce el Gea ee Cea sec RUC RCm a) hit ctra-a to select it all and ctri-c to copy it eee tune m ca nae Rare v to paste all of that config in. The terminal will give you a popup SOR Len Coot Rar ea aCe Nc Cr eee eee ct Sa | hit ge to go to the top of the file. You want to make sure the first Tee OME ea nace Sc the same. The top of the file should look like this: Pee CCR CR Sc eee ny neovim to save and quit, then run nvim init.1ua again and hold in tight, a bunch of things are about to happen, starting with a blank See ea RM eu a Failed Ersoy eRe ene Conant penny PSone Getting around this error is easy to do, but | wanted to make sur: appeared. This happens because the either the fzf-native plugin or Cee Cat aeRO RASC Ceca oa the system having a C compiler present. You only need one of the CUCU RM Re lmuee te R CRC a Mites} working though, CC and GCC are both somewhat tricky on windows. Clang is next but it's a bit hidden inside LLVM. Out of all of them, | CU Pan Reece nner ay You can hit q if you see the first error, or just hit the enter key if you hit the second error, until you get this screen cr cee apeertot eee Notice the styling and colors look a lot better now, but we still need to fix those errors. Run :q to quit neovim, then close the terminal POLO aia UCne eee either need to do a manual install per the website, which includes tet nan OR SCN Rar cy Ie Re oan ce cee ee eCard didn't include the command to install from Winget - as of the time of writing this, Winget doesn't have zig available. Installing this package might take a minute, and at the beginning it might look like nothing is happening. Let it finish, then close the RCE U ee Mie ee Sere ee een cae ere tress RC a eee age cane Ra ea TRE DCR MS ec ae Cee RCo Rae eC See Maa ce oe Ree Cee RUS a RU eae ee RR LCs POE SE cece SS ete aD) ERE eee ere earn nearer eee raeeneeaieaserray 1 Then you'll be presented with a working config and you'll see a message in the bottom of the Neovim window that treesitter is cM Ree eRe ac Rare onT tee UE STC een etc cy et Re es aud While | was testing all of this out | found that Neovim was running SE Aa ee ea ec Rca might have something to do with the antivirus, Neovim, and the file PCE cea RCE ane ACR Rcd Toes SUE eu Sele ea ROE Rares Oe Lec) Ce Rua alah A quick mention of WSL for Windows TE Eu Rk eee aa Neovim, and you have the ability to use the Windows Subsystem for Linux, it's a very good option as well. | mentioned in the beginning that | use it all the time, and besides a couple hiccups with the clipboard it's been great to work with, especially with Neovim. | still use it for the bulk of the dev work | do, despite having Neovim RRR eee Re Ua ED Eee eee a SRR system directly as performance for that kind of thing is terrible with WSLZ. But | have full Linux kernel access, | can launch dev servers bound to ports, etc. I recommend you look into using it as well as an Ss Scie A Seat ee IC Oe Cue ac opening any shell, and then running the command wsi --insta11. In fact the MS Docs for installing and configuring WSL are pretty good. Ifyou decide to go this route, you can then install Neovim and the related support programs (ripgrep, a C compiler, etc) inside the rege Ue eM ca Cun RnR TORU ey SRL UBER eR a aura running of Neovim would be inside WSLZ, and in the case of DN SER eee ree Ree Roe elceot BROCE ea SRN ean Me rane eae eae icity WSL is beyond the scope and intent of this article, but here are a eer SM cuC aT RNS estat fact ERCaT=e Ta ae tae tel \stallation instructions, including fara Here is a guide that includes alternative installation methods Conclusion Ge aR Re occ enced eae Sa RRC eee ca start over. At this point, Neovim is yours to shape and play with. I'd recommend reading through the kickstarter config carefully though including all the code and comments, because it contains a lot of good information and common patterns used in Lua development. eS Cae RNa Ry Peon Du Ce Use ee GN acs cna’ POU Re aR Re eee experiments don't work out, branch your config to try whole new configs altogether, and generally have more freedom and less risk of losing a working config. You can also push the repo up to Github ENR AS SC eo One Mee Rn anni ue eon TT) can use Git to clone it into the nvim directory on windows and RE ae tne Cu) Sem NR a UCM si) had fun! If you get stuck with something, remember the links | provided for help above, or post a comment and I'll try to help out. caer ae

You might also like