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

update doc

This commit is contained in:
jdhao 2022-02-12 14:31:00 +08:00
parent 1efec8bc8f
commit 5b7944031e

View File

@ -1,20 +1,17 @@
# Pre-requisite # Pre-requisite
There are a few dependencies if we want to use Nvim for efficient editing and There are a few dependencies if we want to use Nvim for efficient editing and development work.
development work.
## Python ## Python
A lot of Nvim plugins are mainly written in Python. To use auto-completion and A lot of Nvim plugins are mainly written in Python. To use auto-completion and other features, we must install Python 3.
other features, we must install Python 3. The easiest way to install is via 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).
[Anaconda](https://www.anaconda.com/distribution/#download-section) or [Miniconda](https://docs.conda.io/en/latest/miniconda.html). Make sure that Make sure that you can run `python --version`, and that the output should be Python 3.x.
you can run `python --version`, and that the output should be Python 3.x.
## Pynvim ## Pynvim
Nvim relies on [pynvim](https://github.com/neovim/pynvim) to communicate with Nvim relies on [pynvim](https://github.com/neovim/pynvim) to communicate with plugins that utilize its Python binding.
plugins that utilize its Python binding. Pynvim is required by plugins such as Pynvim is required by plugins such as [wilder.nvim](https://github.com/gelguy/wilder.nvim).
[Semshi](https://github.com/numirias/semshi).
``` ```
pip install -U pynvim pip install -U pynvim
@ -22,8 +19,7 @@ pip install -U pynvim
## python-lsp-server ## 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 for completion, [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.
linting, go to definition, etc.
``` ```
pip install 'python-lsp-server[all]' pylsp-mypy pyls-isort pip install 'python-lsp-server[all]' pylsp-mypy pyls-isort
@ -57,9 +53,8 @@ source ~/.bash_profile
## vim-language-server ## vim-language-server
[vim-language-server](https://github.com/iamcco/vim-language-server) provides [vim-language-server](https://github.com/iamcco/vim-language-server) provides completion for vim script.
completion for vim script. We can install vim-language-server globally and set We can install vim-language-server globally and set its path:
its path:
```bash ```bash
npm install -g vim-language-server npm install -g vim-language-server
@ -69,17 +64,15 @@ export PATH="$HOME/.npm-packages/bin:$PATH"
## Git ## Git
Git is used by the plugin manager [packer.nvim](https://github.com/wbthomason/packer.nvim) to clone plugins from GitHub or Git is used by the plugin manager [packer.nvim](https://github.com/wbthomason/packer.nvim) to clone plugins from Git repositories.
other Git repositories.
Since Git is usually pre-installed on Linux and macOS, we do not need to worry Since Git is usually pre-installed on Linux and macOS, we do not need to worry if we are on these two platforms.
if we are on these two platforms. For Windows, install [Git for Windows](https://git-scm.com/download/win) For Windows, install [Git for Windows](https://git-scm.com/download/win) and make sure you can run `git` from command line.
and make sure you can call `git` from the command line.
## ctags ## ctags
In order to use tags related plugins such as [vista.vim](https://github.com/liuchengxu/vista.vim), we need to In order to use tags related plugins such as [vista.vim](https://github.com/liuchengxu/vista.vim), we need to install a ctags distribution.
install a ctags distribution. Universal-ctags is preferred. Universal-ctags is preferred.
To install ctags on macOS, use [Homebrew](https://github.com/universal-ctags/homebrew-universal-ctags): To install ctags on macOS, use [Homebrew](https://github.com/universal-ctags/homebrew-universal-ctags):
@ -96,97 +89,92 @@ choco install universal-ctags
# scoop install univeral-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) To install it on Linux, we need to build it from source. See [here](https://askubuntu.com/a/836521/768311) for the details.
for the details.
Set its PATH properly and make sure you can call `ctags` from command line. Set its PATH properly and make sure you can run `ctags` from command line.
## Ripgrep ## Ripgrep
[Ripgrep](https://github.com/BurntSushi/ripgrep), aka, `rg`, is a fast grepping [Ripgrep](https://github.com/BurntSushi/ripgrep), aka, `rg`, is a fast grepping tool available for both Linux, Windows and macOS.
tool available for both Linux, Windows and macOS. It is used by several It is used by several searching plugins.
searching plugins.
For Windows and macOS, we can install it via chocolatey and homebrew For Windows and macOS, we can install it via chocolatey and homebrew respectively.
respectively. For Linux, we can download the executable file from its [release For Linux, we can download the [binary release](https://github.com/BurntSushi/ripgrep/releases) and install it.
page](https://github.com/BurntSushi/ripgrep/releases) and install it.
## Linters ## Linters
A linter is a tool to check the source code for possible style and syntax A linter is a tool to check the source code for possible style and syntax issues.
issues. Based on the programming languages we use, we may need to install Based on the programming languages we use, we may need to install various linters.
various linters.
+ Python: [pylint](https://github.com/PyCQA/pylint) and [flake8](https://github.com/PyCQA/flake8). + Python: [pylint](https://github.com/PyCQA/pylint) and [flake8](https://github.com/PyCQA/flake8).
+ Vim script: [vint](https://github.com/Kuniwak/vint). + Vim script: [vint](https://github.com/Kuniwak/vint).
## Terminal emulators ## Terminal emulators
Which [terminal emulator](https://en.wikipedia.org/wiki/Terminal_emulator) we Which [terminal emulator](https://en.wikipedia.org/wiki/Terminal_emulator) we choose to use greatly affects the appearance and functionalities of Nvim.
choose to use greatly affects the appearance and functionalities of Nvim. Since Nvim supports true colors, terminals that support true colors are preferred.
Since Nvim supports true colors, terminals that support true colors are For a list of terminals that support true colors, see [here](https://github.com/termstandard/colors).
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/), or [Alacritty](https://github.com/jwilm/alacritty). 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 connect to Linux server on Windows, I recommend [wsltty](https://github.com/mintty/wsltty) and If you ssh to Linux server on Windows, I recommend [wsltty](https://github.com/mintty/wsltty) and [Cygwin](https://www.cygwin.com/),
[Cygwin](https://www.cygwin.com/), both of them use [mintty](https://github.com/mintty/mintty) as the terminal emulator. 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 the new [Windows For the latest version of Windows 10, you can also try [Windows Terminal](https://github.com/microsoft/terminal).
Terminal](https://github.com/microsoft/terminal).
## Font ## Patched Fonts
Since statusline or file explorer plugins often use Unicode symbols not Since statusline or file explorer plugins often use Unicode symbols not available in normal font,
available in normal font, we need to install a patched font from the [nerd-fonts](https://github.com/ryanoasis/nerd-fonts) project. we need to install a patched font from the [nerd-fonts](https://github.com/ryanoasis/nerd-fonts) project.
# Install Nvim # Install Nvim
There are various ways to install Nvim depending on your system. Current There are various ways to install Nvim depending on your system.
configuration is tested against nvim v0.6.1. Current configuration is tested against nvim v0.6.1.
## Linux ## Linux
We can directly download the binary release from [here](https://github.com/neovim/neovim/releases/download/stable/nvim-linux64.tar.gz). 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.
## Windows ## Windows
The easiest way to install Nvim on Windows is via chocolatey: You may download from [nvim release](https://github.com/neovim/neovim/releases/download/stable/nvim-win64.zip) from GitHub and manually extract it.
Another way to install Nvim on Windows is via chocolatey or scoop:
``` ```
choco install neovim choco install neovim
```
You may download from [nvim release](https://github.com/neovim/neovim/releases/download/stable/nvim-win64.zip) from GitHub and manually extract it. # via scoop
# scoop bucket add versions
# scoop install neovim
```
## macOS ## macOS
It is recommended to install neovim via [Homebrew](https://brew.sh/) on macOS. It is recommended to install neovim via [Homebrew](https://brew.sh/) on macOS. Simply run the following command:
Simply run the following command:
```bash ```bash
brew install neovim brew install neovim
``` ```
After installing Nvim, we need to add the directory where the Nvim executable After installing Nvim, we need to add the directory where the Nvim executable resides to the system
(`nvim` on Linux and macOS, `nvim.exe` on Windows) resides to the system `PATH`. Make sure that you can run `nvim` from the command line after all these setups.
Make sure that you can call `nvim` from the command line after all these
setups.
# Setting up Nvim # Setting up Nvim
## Install plugin manager packer.nvim ## Install plugin manager packer.nvim
I use packer.nvim to manage my plugins. We need to install packer.nvim on our I use packer.nvim to manage my plugins. We need to install packer.nvim on our system first.
system first.
For Windows, if curl is installed, use the following command (on PowerShell): For Windows, if curl is installed, run 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" 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: For macOS and Linux, run the following command:
```bash ```bash
git clone --depth=1 https://github.com/wbthomason/packer.nvim ~/.local/share/nvim/site/pack/packer/opt/packer.nvim git clone --depth=1 https://github.com/wbthomason/packer.nvim ~/.local/share/nvim/site/pack/packer/opt/packer.nvim
@ -194,30 +182,27 @@ git clone --depth=1 https://github.com/wbthomason/packer.nvim ~/.local/share/nvi
## How to install this configuration ## How to install this configuration
On Windows, the config directory is `$HOME/AppData/Local/nvim`[^1]. On Linux On Windows, the config directory is `$HOME/AppData/Local/nvim`[^1].
and macOS, the directory is `~/.config/nvim`. First, we need to remove all the On Linux and macOS, the directory is `~/.config/nvim`.
files under the config directory (including dot files), then go to this First, we need to remove all the files under the config directory (including dot files),
directory, and run the following command to install this configuration: then go to this directory, and run the following command:
``` ```
git clone --depth=1 https://github.com/jdhao/nvim-config.git . git clone --depth=1 https://github.com/jdhao/nvim-config.git .
``` ```
After that, when we first open nvim, run command `:PackerSync` to install all After that, when we first open nvim, run command `:PackerSync` to install all the plugins and generate `packer_compiled.lua`.
the plugins and generate `packer_compiled.lua`. Since I use quite a lot of Since I use quite a lot of plugins (more than 60), it may take some time to install all of them.
plugins (more than 60), it may take some time to install all of them, depending
on your network condition.
# Automatic installation # Automatic installation
## Automatic Installation for Linux # ## 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 To set up a workable Nvim environment on Linux, I use [this bash script](nvim_setup_linux.sh) to automatically install necessary dependencies,
dependencies, Nvim itself and Nvim configs in this repo. Nvim itself and Nvim configs in this repo.
Note that the variable `PYTHON_INSTALLED`, `SYSTEM_PYTHON` and Note that the variable `PYTHON_INSTALLED`, `SYSTEM_PYTHON` and `ADD_TO_SYSTEM_PATH` in the script
`ADD_TO_SYSTEM_PATH` in the script should be set properly based on your should be set properly based on your environment.
environment.
## Automatic installation for Windows ## Automatic installation for Windows