All my Neovim config files, using PowerShell in the Windows Terminal along with fzf and bat for fast navigation. Also a quick setup for Tridactyl on Firefox.
This setup enables you to have many buffers open in Neovim that you can easily switch between using Harpoon and Telescope, while also quickly opening entirely different directories in new tabs using fzf which you can easily switch between and close, all while having access to vim motions in your browser.
Windows11WorkflowDemo.mp4
Showcase: cw (cd directory), ew (explorer directory), nw (nvim directory), ctrl+f in Neovim (new tab + nw), ctrl+tab (switch tabs), f (open firefox with tridactyl), q or :q (close the terminal tab)
- PowerShell →
C:\Users\[USERNAME]\Documents\PowerShell
. - nvim →
C:\Users\[USERNAME]\AppData\Local\nvim
. - scripts →
C:\scripts
.
- Ensure "Developer Mode" is turned on in windows settings (Windows + I and then search
developer
).
- Windows Terminal → Run
winget install --id Microsoft.WindowsTerminal
. - PowerShell (pwsh.exe) → Run
winget install --id Microsoft.Powershell --source winget
. - NerdFont → Download from here and put the contents in
C:\Documents\Fonts
, select all and right click then select "Install". You can delete the .ttf files from the folder after you've installed them.
- Startup → Default profile = PowerShell. Default termial application = Windows Terminal. Launch size = 120x25. Launch parameters = Center on launch enabled.
- Interaction → Warn when closing more than one tab = Off.
- Appearance → Use acrylic material in the tab row = On. Use active terminal title as application title = Off.
- Actions → Add a new action Close tab assigned to
ctrl+shift+d
. Set Toggle fullscreen toalt+enter
. - Defaults → Appearance → Font face = CaskaydiaCove Nerd Font. Font size = 16. Background opacity = 75%.
- Starting directory →
C:\
. - Appearance → Font face = CaskaydiaCove Nerd Font. Font size = 16. Background opacity = 75%.
- Microsoft Visual C++ 2015-2022 Redistributable (x64) → Download from here and run the installation wizard.
- Git → Run
winget install --id Git.Git --source winget
thengit config --system core.longpaths true
. - MinGW → Download from here and put the contents in
C:\MinGW
(Most use cases are the 64-bit versions). - Make → Run
winget install make --source winget
. - Python → Run
winget install --id Python.Python.3.11
. - NodeJS → Run
winget install OpenJS.NodeJS
and say yes to installing Chocolatey. - ripgrep → Run
winget install BurntSushi.ripgrep.MSVC
. - fd → Run
winget install --id sharkdp.fd --source winget
. - Neovim → Run
winget install neovim
. - Python Provider → Run
pip install pynvim --upgrade
. - NodeJS Provider → Run
npm install -g neovim
. - Packer → Run
git clone https://github.com/wbthomason/packer.nvim "$env:LOCALAPPDATA\nvim-data\site\pack\packer\start\packer.knvim"
. - Paste the
C:\Users\[USERNAME]\Documents\PowerShell
folder to that location, editMicrosoft.PowerShell_profile.ps1
and remove theattend
andmusic
functions, as they are specific to me. This file is where you can see all the custom commands, you can delete the ones you don't want or add new ones.
- fzf → Run
winget install --id=junegunn.fzf
or download the exe from here and put it inC:\Windows
. - bat → Run
winget install sharkdp.bat
. - Firefox → Download from here. Install to
C:\Program Files\Mozilla Firefox\firefox.exe
. - NirCmd → Run
winget install --id NirSoft.NirCmd
. - Tridactyl → Go here on Firefox.
- Paste the
C:\scripts
folder to that location. Ensure you putC:\scripts\which
andC:\scripts\firefox
in the path.
I recommend manually recreating the nvim
folder on your PC rather than just pasting it in, because this will allow you to single out any unexpected errors as they happen.
You should start with the top level init.lua
, replace "connor" with "[YOUR USERNAME]" then move on to the lua\[USERNAME]\init.lua
and replace my name with yours again. Then you can create lua\[USERNAME]\remap.lua
and lua\[USERNAME]\set.lua
and paste the config into each. Running nvim .
in the nvim directory now should open Neovim and give you no errors.
Now you can create lua\[USERNAME]\packer.lua
, populate it with only the following lines:
vim.cmd [[packadd packer.nvim]]
return require('packer').startup(function(use)
use('wbthomason/packer.nvim')
end)
Run nvim .
and navigate to this file, run :so
and :PackerSync
, then press q
after packer finishes.
Now, under the line use('wbthomason\packer.nvim')
you can start adding plugins, do so in the following pattern (with some exceptions):
- Add the line to
lua\[USERNAME]\packer.lua
and run:so
then:PackerSync
inside it. - If it needs one, add an
after\plugin\[PLUGIN].lua
file for the plugin and run:so
inside it. - Run
:q
thennvim .
incase the plugin needs a restart.
The following plugins require extra or different steps than those outlined above:
- Treesitter → After following the steps, you should see it compiling languages at the bottom of your screen, don't touch your keyboard until this is finished. You might get an error along the lines of
[LANGUAGE].so is not a valid Win32 app
, which means either your version of MinGW does not match your operating system or treesitter is using the wrong compiler. After fixing the issue you can run:TSInstall [LANGUAGE]
to recompile it. - Coc → After following the steps, run
:CocInstall coc-discord-rpc coc-copilot coc-git coc-powershell coc-sh coc-html coc-tsserver coc-css coc-cssmodules coc-json coc-xml coc-sql coc-pyright coc-java coc-omnisharp coc-cmake coc-clangd
and run:q
to close the dialog once everything is installed and addcoc-settings.json
, then restart again. If you don't want discord integration with Neovim, dont includecoc-discord-rpc
or just run:CocUninstall coc-discord-rpc
after the first command. If a language you want is missing, you can find it here. - Copilot → If you don't have a license for Copilot then don't include this plugin. If you do, then after following the steps run
:Copilot setup
and follow the instructions. - Colorscheme → You can use the one that I use, but if you don't want to you will have to change the lines in
lua\[USERNAME]\packer.lua
,after\plugin\colors.lua
andafter\plugin\lualine.lua
accordingly.
After all those plugins are installed, don't forget to include after\plugin\buffers.lua
and after\plugin\colors.lua
, they are not related to any plugins.
colors.lua
will just make everthing look slightly better, and buffers.lua
is optional, as it can slow down the startup time but will open a separate buffer every file in the specified directory that has any of the file extensions specified - this can be useful because renaming symbols across multiple files can fail if you need to change words in a buffer that is not already open.
Finally, you can paste the mapping-info
folder for safe keeping.
All keybinds can be edited at lua\[USERNAME]\remap.lua
or the respective after\plugin\[PLUGIN].lua
file, and all settings can be edited at lua\[USERNAME]\set.lua
.
To use firefoxfocusfix.bat
from the start menu rather than just the terminal, follow these steps:
- Go to
C:\ProgramData\Microsoft\Windows\Start Menu\Programs
and right click on the Firefox shortcut, then properties. - Change the target to
C:\scripts\firefox\firefoxfocusfix.bat
. - Click Change Icon and browse to
C:\Program Files\Mozilla Firefox
then select the Firefox icon. - Apply the changes.
Now make firefox your default browser. After that go to Firefox settings and change the following:
- General → Use recommended performance settings = Off.
- General → Use hardware acceleration when available = Off.
- Home → Homepage and new windows → Custom URLs... → Paste
moz-extension://13a1d2f1-5f72-41ad-bbed-17d8bb8bae85/static/newtab.html
→ Use Current Page. - Home → Default search engine = Google.
- Now go to this url
about:config
and search forfull-screen-api.transition-duration.enter
andfull-screen-api.transition-duration.leave
and change both to0 0
. - Scan the rest of the settings and disable things you don't want that will slow down the browser.
Using Tridactyl, press :
and type the following commands:
set newtab about:blank
.set searchengine google
.set modeindicatorshowkeys true
.set modeindicatormodes {"normal":"true","insert":"true","input":"true","ignore":"false","ex":"true","hint":"true","visual":"true"}
.
You can go here to view all the most important bindings.
PowerToys → Run winget install Microsoft.PowerToys --source winget
- enable Run at startup - my favourite tools are:
- Run with an activation shortcut of
shift+backspace
, input smoothing disabled, clear previous query on launch enabled, preferred monitor primary, all plugins off except window walker - this allows switching windows by searching their name instead of alt tabbing. - Color Picker with an activation shortcut of
win+shift+c
and HEX, RGB and VEC4 enabled. - Screen Ruler with an activation shortcut of
win+shift+p
. - Text Extractor with an activation shortcut of
win+shift+t
. - Command Not Found enabled.
SysInternals → Download from here and choose the executables that you want - the only one I use is ZoomIt with the following settings:
- Run ZoomIt when Windows starts and Show tray icon both enabled.
- Zoom on
ctrl+/
with animate zoom in and zoom out disabled. - Draw on
ctrl+'
. - Record on
ctrl+;
.
Visual Studio 2022 → Download from here and make sure to put the following in the path:
C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin
for MSBuild.C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\[VSVERSION]\bin\[HOSTOSVERSION]\[OSVERSION]
for cl.
Dependency Walker → Download from here and put the contents in C:\DependencyWalker
.
Cutter → Download from here and put the contents in C:\Cutter
.
Mp3tag → Download from here.
scc → As an admin, run choco install scc
- details can be found here.
Windows11CursorConceptV2.2 → Go here for a more fitting cursor. After buying, extract the contents to a known location and go to the version you desire, right click the install.inf
file, click install and accept any dialogs that appear.