There are a few dependencies if we want to use Nvim for efficient editing and development work.
A lot of Nvim plugins are mainly written in Python. To use auto-completion and
other features, we must install Python 3. The easiest way to install is via
Anaconda or Miniconda. Make sure that
you can run python --version
, and that the output should be Python 3.x.
Nvim relies on pynvim to communicate with plugins that utilize its Python binding. Pynvim is required by plugins such as Semshi.
pip install -U pynvim
python-lsp-server is the community-fork of pyls, and it is a Python Language Server for completion, linting, go to definition, etc.
pip install 'python-lsp-server[all]' pylsp-mypy pyls-isort
We need to install node.js from here:
# Ref: https://johnpapa.net/node-and-npm-without-sudo/
wget https://nodejs.org/dist/v14.15.4/node-v14.15.4-linux-x64.tar.xz
mkdir -p $HOME/tools
# extract node to a custom directory, the directory should exist.
tar xvf node-v14.15.4-linux-x64.tar.xz --directory=$HOME/tools
Then add the following config to .bash_profile
or .zshrc
export PATH="$HOME/tools/node-v14.15.4-linux-x64/bin:$PATH"
Source the file:
source ~/.bash_profile
# source ~/.zshrc
vim-language-server provides completion for vim script. We can install vim-language-server globally and set its path:
npm install -g vim-language-server
export PATH="$HOME/.npm-packages/bin:$PATH"
Git is used by the plugin manager packer.nvim to clone plugins from GitHub or other Git repositories.
Since Git is usually pre-installed on Linux and macOS, we do not need to worry
if we are on these two platforms. For Windows, install Git for Windows
and make sure you can call git
from the command line.
In order to use tags related plugins such as vista.vim, we need to install a ctags distribution. Universal-ctags is preferred.
To install ctags on macOS, use Homebrew:
brew install ctags
To install it Windows, use chocolatey or scoop
choco install universal-ctags
# scoop bucket add extras
# scoop install univeral-ctags
To install it on Linux, we need to build it from source. See here for the details.
Set its PATH properly and make sure you can call ctags
from command line.
Ripgrep, aka, rg
, is a fast grepping
tool available for both Linux, Windows and macOS. It is used by several
searching plugins.
For Windows and macOS, we can install it via chocolatey and homebrew respectively. For Linux, we can download the executable file from its release page and install it.
A linter is a tool to check the source code for possible style and syntax issues. Based on the programming languages we use, we may need to install various linters.
Which terminal emulator we choose to use greatly affects the appearance and functionalities of Nvim. Since Nvim supports true colors, terminals that support true colors are preferred. For a list of terminals that support true colors, see here.
For macOS, we can use kitty, iterm2, or Alacritty. If you connect to Linux server on Windows, I recommend wsltty and Cygwin, both of them use mintty as the terminal emulator.
For the latest version of Windows 10, you can also try the new Windows Terminal.
Since statusline or file explorer plugins often use Unicode symbols not available in normal font, we need to install a patched font from the nerd-fonts project.
There are various ways to install Nvim depending on your system. Current configuration is tested against nvim v0.6.0.
We can directly download the binary release from here.
The easiest way to install Nvim on Windows is via chocolatey:
choco install neovim
You may download from nvim release from GitHub and manually extract it.
It is recommended to install neovim via Homebrew on macOS. Simply run the following command:
brew install neovim
After installing Nvim, we need to add the directory where the Nvim executable
(nvim
on Linux and macOS, nvim.exe
on Windows) resides to the system PATH
.
Make sure that you can call nvim
from the command line after all these
setups.
I use packer.nvim to manage my plugins. We need to install packer.nvim on our system first.
For Windows, if curl is installed, use the following command (on PowerShell):
git clone --depth=1 https://github.com/wbthomason/packer.nvim "$env:LOCALAPPDATA\nvim-data\site\pack\packer\opt\packer.nvim"
For macOS and Linux, use the following command:
git clone --depth=1 https://github.com/wbthomason/packer.nvim ~/.local/share/nvim/site/pack/packer/opt/packer.nvim
On Windows, the config directory is $HOME/AppData/Local/nvim
1. On Linux
and macOS, the directory is ~/.config/nvim
. First, we need to remove all the
files under the config directory (including dot files), then go to this
directory, and run the following command to install this configuration:
git clone --depth=1 https://github.com/jdhao/nvim-config.git .
After that, when we first open nvim, run command :PackerSync
to install all
the plugins and generate packer_compiled.lua
. Since I use quite a lot of
plugins (more than 60), it may take some time to install all of them, depending
on your network condition.
To set up a workable Nvim environment on Linux, I use this bash script to automatically install necessary dependencies, Nvim itself and Nvim configs in this repo.
Note that the variable PYTHON_INSTALLED
, SYSTEM_PYTHON
and
ADD_TO_SYSTEM_PATH
in the script should be set properly based on your
environment.
Run script nvim_setup_windows.ps1 under PowerShell.
Footnotes
-
Use
echo %userprofile%
to see where your$HOME
is. ↩