1
0
mirror of https://github.com/jdhao/nvim-config.git synced 2025-06-08 14:14:33 +02:00

update config doc

This commit is contained in:
jdhao 2022-02-14 20:43:00 +08:00
parent aa891f7acd
commit 414a4593ce

View File

@ -1,12 +1,16 @@
This doc summarizes how to install and use this configuration in detail.
# Pre-requisite
There are a few dependencies if we want to use Nvim for efficient editing and development work.
## Python
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](https://www.anaconda.com/distribution/#download-section) or [Miniconda](https://docs.conda.io/en/latest/miniconda.html).
Make sure that you can run `python --version`, and that the output should be Python 3.x.
A lot of Nvim plugins are mainly written in Python, so we must install Python 3.
The easiest way to install is via [Anaconda](https://docs.anaconda.com/anaconda/install/index.html) or [Miniconda](https://docs.conda.io/en/latest/miniconda.html).
After installation, make sure that you can run `python --version`,
and that the output should be Python 3.x.
## Pynvim
@ -19,15 +23,20 @@ pip install -U pynvim
## python-lsp-server
[python-lsp-server](https://github.com/python-lsp/python-lsp-server) is the community-fork of [pyls](https://github.com/palantir/python-language-server), and it is a Python [Language Server](https://microsoft.github.io/language-server-protocol/) for completion, linting, go to definition, etc.
[python-lsp-server (pylsp)](https://github.com/python-lsp/python-lsp-server) is a Python [Language Server](https://microsoft.github.io/language-server-protocol/) for completion, linting, go to definition, etc.
```
pip install 'python-lsp-server[all]' pylsp-mypy pyls-isort
```
Note the executable for pylsp is also named `pylsp`. You need to set its PATH correctly.
If you use pip from Anaconda, the executable path may be something like `$CONDA_ROOT/bin/pylsp`.
For native python, the path for pylsp may be like `$HOME/.local/bin/pylsp`
## Node
We need to install node.js from [here](https://nodejs.org/en/download/):
We need to install node.js from [here](https://nodejs.org/en/download/).
For Linux, you can use the following script:
```bash
# Ref: https://johnpapa.net/node-and-npm-without-sudo/
@ -53,20 +62,21 @@ source ~/.bash_profile
## vim-language-server
[vim-language-server](https://github.com/iamcco/vim-language-server) provides completion for vim script.
We can install vim-language-server globally and set its path:
[vim-language-server](https://github.com/iamcco/vim-language-server) provides completion for vim script. We can install vim-language-server globally:
```bash
npm install -g vim-language-server
export PATH="$HOME/.npm-packages/bin:$PATH"
```
vim-language-server is installed in the same directory as the node executable.
## Git
Git is used by the plugin manager [packer.nvim](https://github.com/wbthomason/packer.nvim) to clone plugins from Git repositories.
Git is required by plugin manager [packer.nvim](https://github.com/wbthomason/packer.nvim) and other git-related plugins.
Since Git is usually pre-installed on Linux and macOS, we do not need to worry if we are on these two platforms.
For Linux and macOS, Git is usually pre-installed.
The version of Git on the Linux system may be too old so that plugins may break.
Check [here](https://jdhao.github.io/2021/03/27/upgrade_git_on_linux/) on how to install and set up the latest version of Git.
For Windows, install [Git for Windows](https://git-scm.com/download/win) and make sure you can run `git` from command line.
## ctags
@ -74,6 +84,7 @@ For Windows, install [Git for Windows](https://git-scm.com/download/win) and mak
In order to use tags related plugins such as [vista.vim](https://github.com/liuchengxu/vista.vim), we need to install a ctags distribution.
Universal-ctags is preferred.
To install it on Linux, we need to build it from source. See [here](https://askubuntu.com/a/836521/768311) for the details.
To install ctags on macOS, use [Homebrew](https://github.com/universal-ctags/homebrew-universal-ctags):
```bash
@ -89,8 +100,6 @@ choco install universal-ctags
# scoop install univeral-ctags
```
To install it on Linux, we need to build it from source. See [here](https://askubuntu.com/a/836521/768311) for the details.
Set its PATH properly and make sure you can run `ctags` from command line.
## Ripgrep
@ -101,6 +110,8 @@ 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 [binary release](https://github.com/BurntSushi/ripgrep/releases) and install it.
Set its PATH properly and make sure you can run `rg` from command line.
## Linters
A linter is a tool to check the source code for possible style and syntax issues.
@ -109,16 +120,18 @@ Based on the programming languages we use, we may need to install various linter
+ Python: [pylint](https://github.com/PyCQA/pylint) and [flake8](https://github.com/PyCQA/flake8).
+ Vim script: [vint](https://github.com/Kuniwak/vint).
Set their PATH properly and make sure you can run `pylint`, `flake8` and `vint` from command line.
## Terminal emulators
Which [terminal emulator](https://en.wikipedia.org/wiki/Terminal_emulator) we choose to use greatly affects the appearance and functionalities of Nvim.
Which [terminal emulator](https://en.wikipedia.org/wiki/Terminal_emulator) we choose to use greatly affects the appearance and features 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](https://github.com/termstandard/colors).
For macOS, we can use [kitty](https://sw.kovidgoyal.net/kitty/), [iterm2](https://www.iterm2.com/), [wezterm](https://wezfurlong.org/wezterm/) or [Alacritty](https://github.com/jwilm/alacritty).
If you ssh to Linux server on Windows, I recommend [wsltty](https://github.com/mintty/wsltty) and [Cygwin](https://www.cygwin.com/),
both of them use [mintty](https://github.com/mintty/mintty) as the terminal emulator.
For the latest version of Windows 10, you can also try [Windows Terminal](https://github.com/microsoft/terminal).
## Patched Fonts
@ -135,7 +148,7 @@ Current configuration is tested against nvim v0.6.1.
We can directly download the binary release from [here](https://github.com/neovim/neovim/releases/download/stable/nvim-linux64.tar.gz).
You can also use the system package manager to install nvim,
but that is not reliable since lastest version may not be available.
but that is not reliable since latest version may not be available.
## Windows
@ -159,7 +172,7 @@ It is recommended to install neovim via [Homebrew](https://brew.sh/) on macOS. S
brew install neovim
```
After installing Nvim, we need to add the directory where the Nvim executable resides to the system
After installing Nvim, we need to set the path to nvim correctly.
Make sure that you can run `nvim` from the command line after all these setups.
# Setting up Nvim
@ -182,8 +195,8 @@ git clone --depth=1 https://github.com/wbthomason/packer.nvim ~/.local/share/nvi
## How to install this configuration
On Windows, the config directory is `$HOME/AppData/Local/nvim`[^1].
On Linux and macOS, the directory is `~/.config/nvim`.
On Windows, the config directory is `$HOME/AppData/Local/nvim`[^1].
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:
@ -191,15 +204,15 @@ then go to this directory, and run the following command:
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`.
After that, when we first open nvim, run command `:PackerSync` to install all the plugins.
Since I use quite a lot of plugins (more than 60), it may take some time to install all of them.
# Automatic installation
## Automatic Installation for Linux #
To set up a workable Nvim environment on Linux, I use [this bash script](nvim_setup_linux.sh) to automatically install necessary dependencies,
Nvim itself and Nvim configs in this repo.
To set up a workable Nvim environment on Linux,
I use [a bash script](nvim_setup_linux.sh) to automatically install necessary dependencies, Nvim itself and configs.
Note that the variable `PYTHON_INSTALLED`, `SYSTEM_PYTHON` and `ADD_TO_SYSTEM_PATH` in the script
should be set properly based on your environment.