I have been using Neovim for personal projects for over a year. Recently, I want to set up Neovim system wide so that other users in the server can also use my config if they want. In this post, I will summarize the necessary configurations.
Installation#
First, you need to install Neovim in a system location, for example, under /opt
.
Then edit the system profile /etc/profile
and add the path of Neovim:
export PATH=/etc/nvim-linux64/bin:PATH
Configuration#
Global configuration#
According to the documentation of Neovim, Neovim will look for nvim/sysinit.vim
under $XDG_CONFIG_DIRS
(the default is /etc/xdg
)1.
So for global configuration, we need to put all configuration under /etc/xdg/nvim
.
Take my configuration for an example:
mkdir /etc/xdg/nvim && cd /etc/xdg/nvim && git clone --depth 1 https://github.com/jdhao/nvim-config.git .
We also need to create a symlink sysinit.vim
and link it to init.vim
:
ln -s init.vim sysinit.vim
Change the value of g:nvim_system_wide
in init.vim to 1 to install the plugins system-wide.
Since I use vim-plug to manage plugins, I have set up vim-plug to install the system wide plugin under /usr/local/share/nvim/site
(see code here).
Now, as root user, open neovim and use :PlugInstall
to install plugins.
The system configuration is finished.
Personal configuration#
Usually, each user may want to change the default configuration set by the root.
The user’s personal config should be put in $HOME/.config/nvim/init.vim
.
It will override the global configurations.
There is currently one gotcha: the users can not install local plugins using vim-plug easily.
If the user want to install a custom plugin, they should first clone the plugin repo to a location and add the plugin path to runtimepath
.
For example, if we install ayu-vim
under /home/jdhao/.local/share/nvim/plugged/ayu-vim
,
we should add the following setting to $HOME/.config/nvim/init.vim
:
set runtimepath+=/home/jdhao/.local/share/nvim/plugged/ayu-vim
Another way of adding your personal plugins to runtimepath is by using vim-plug:
Plug '~/.local/share/nvim/plugged/ayu-vim'
You have to manually update the plugin though.
References#
- Neovim doc,
:h 'runtimepath'
. - Neovim doc,
:h startup
. - https://wiki.archlinux.org/index.php/XDG_Base_Directory
- https://github.com/neovim/neovim/issues/8871
- system wide nvim config.
See neovim documentation
:h sysinit.vim
. ↩︎