How to install and set up
TM Ui Cele
ry
Er)
Bred
Ceres
eRe
Cees
Cec meCer
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 wrotePenne 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 VsESTO 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 timeMeine 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 makSMa 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)
fiThen 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 ecElevate 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 RacesCUS 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 alaSee 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 eyhone 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 okeke 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
inoct)
=
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 eaNext, 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 Bellasoe
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 CodyInstalling 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 taYou 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 Gitnach 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 heeTo 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 oCOT: 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 eaYou 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 iteee 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 aFailed
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 ayYou 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 terminalPOLO 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
ToesSUE 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. | stilluse 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 ofDN 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 thoughincluding 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