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

doc update

This commit is contained in:
jdhao 2021-10-18 23:46:20 +08:00
parent 244bd41ff0
commit d1d0efe9e7
2 changed files with 42 additions and 57 deletions

View File

@ -28,14 +28,14 @@ is guaranteed.**
# Features # # Features #
+ Plugin management via [Packer.nvim](https://github.com/wbthomason/packer.nvim). + Plugin management via [Packer.nvim](https://github.com/wbthomason/packer.nvim).
+ Code auto-completion via [nvim-compe](https://github.com/hrsh7th/nvim-compe) and [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig). + Code auto-completion via [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) and [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig).
+ Git integration via [vim-fugitive](https://github.com/tpope/vim-fugitive). + Git integration via [vim-fugitive](https://github.com/tpope/vim-fugitive).
+ Better escaping from insert mode via [better-escape.vim](https://github.com/jdhao/better-escape.vim). + Better escaping from insert mode via [better-escape.vim](https://github.com/jdhao/better-escape.vim).
+ Ultra-fast project-wide fuzzy searching via [LeaderF](https://github.com/Yggdroot/LeaderF). + Ultra-fast project-wide fuzzy searching via [LeaderF](https://github.com/Yggdroot/LeaderF).
+ Faster code commenting via [vim-commentary](https://github.com/tpope/vim-commentary). + Faster code commenting via [vim-commentary](https://github.com/tpope/vim-commentary).
+ Faster matching pair insertion and jump via [delimitMate](https://github.com/Raimondi/delimitMate). + Faster matching pair insertion and jump via [delimitMate](https://github.com/Raimondi/delimitMate).
+ Smarter and faster matching pair management (add, replace or delete) via [vim-sandwich](https://github.com/machakann/vim-sandwich). + Smarter and faster matching pair management (add, replace or delete) via [vim-sandwich](https://github.com/machakann/vim-sandwich).
+ Fast buffer jump via [vim-sneak](https://github.com/justinmk/vim-sneak). + Fast buffer jump via [hop.nvim](https://github.com/phaazon/hop.nvim).
+ Ultra fast snippet insertion via [Ultisnips](https://github.com/SirVer/ultisnips). + Ultra fast snippet insertion via [Ultisnips](https://github.com/SirVer/ultisnips).
+ Beautiful status line via [vim-airline](https://github.com/vim-airline/vim-airline). + Beautiful status line via [vim-airline](https://github.com/vim-airline/vim-airline).
+ Better quickfix list with [nvim-bqf](https://github.com/kevinhwang91/nvim-bqf). + Better quickfix list with [nvim-bqf](https://github.com/kevinhwang91/nvim-bqf).
@ -81,7 +81,7 @@ is guaranteed.**
<img src="https://user-images.githubusercontent.com/16662357/128589584-4036a1a2-2e0a-4bbe-8aaf-ff8b91644648.jpg" width="800"> <img src="https://user-images.githubusercontent.com/16662357/128589584-4036a1a2-2e0a-4bbe-8aaf-ff8b91644648.jpg" width="800">
</p> </p>
## Cursor jump via vim-sneak ## Cursor jump via hop.nvim
Go to a string starting with `se` Go to a string starting with `se`

View File

@ -1,20 +1,20 @@
# Pre-requisite # Pre-requisite
There are a few dependencies if we want to use Nvim for efficient editing There are a few dependencies if we want to use Nvim for efficient editing and
and development work. development work.
## Python ## Python
A lot of Nvim plugins are mainly written in Python. To use auto-completion A lot of Nvim plugins are mainly written in Python. To use auto-completion and
and other features, we must install Python 3. The easiest way to install is via 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 [Anaconda](https://www.anaconda.com/distribution/#download-section) or [Miniconda](https://docs.conda.io/en/latest/miniconda.html). Make sure that
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. Pynvim is required by plugins such as plugins that utilize its Python binding. Pynvim is required by plugins such as
[Deoplete](https://github.com/Shougo/deoplete.nvim) and [Semshi](https://github.com/numirias/semshi). [Semshi](https://github.com/numirias/semshi).
``` ```
pip install -U pynvim pip install -U pynvim
@ -22,7 +22,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, 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 for completion,
linting, go to definition, etc. linting, go to definition, etc.
``` ```
@ -69,19 +69,16 @@ export PATH="$HOME/.npm-packages/bin:$PATH"
## Git ## Git
Git is used by the plugin manager packer.nvim to download plugins from GitHub Git is used by the plugin manager packer.nvim to clone plugins from GitHub or
or other 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. For Windows, install [Git for if we are on these two platforms. For Windows, install [Git for Windows](https://git-scm.com/download/win)
Windows](https://git-scm.com/download/win) and make sure you can call `git` and make sure you can call `git` from the command line.
from the command line.
## ctags ## ctags
In order to use tags related plugins such as In order to use tags related plugins such as [vista.vim](https://github.com/liuchengxu/vista.vim) and [gutentags](https://github.com/ludovicchabant/vim-gutentags), we need to
[tagbar](/github.com/majutsushi/tagbar) and
[gutentags](https://github.com/ludovicchabant/vim-gutentags), we need to
install a ctags distribution. Universal-ctags is preferred. install a ctags distribution. 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):
@ -90,10 +87,13 @@ To install ctags on macOS, use [Homebrew](https://github.com/universal-ctags/hom
brew install ctags brew install ctags
``` ```
To install it Windows, [use chocolatey](https://chocolatey.org/packages/universal-ctags): To install it Windows, use [chocolatey](https://chocolatey.org/) or [scoop](https://scoop.sh/)
``` ```
choco install universal-ctags 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](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)
@ -120,11 +120,6 @@ 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).
For other linters, please consult the plugin documentation. For
[ALE](https://github.com/dense-analysis/ale) (which is the linting plugin I
currently use), a list of linters for different languages is
listed [here](https://github.com/dense-analysis/ale/blob/master/supported-tools.md).
## 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
@ -132,62 +127,51 @@ choose to use greatly affects the appearance and functionalities of Nvim.
Since Nvim supports true colors, terminals that support true colors are 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). preferred. For a list of terminals that support true colors, see [here](https://github.com/termstandard/colors).
For macOS, we can use [iterm2](https://www.iterm2.com/), [kitty](https://sw.kovidgoyal.net/kitty/) or [Alacritty](https://github.com/jwilm/alacritty). For macOS, we can use [kitty](https://sw.kovidgoyal.net/kitty/), [iterm2](https://www.iterm2.com/), 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 connect 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. [Cygwin](https://www.cygwin.com/), both of them use [mintty](https://github.com/mintty/mintty) as the terminal emulator.
For Windows 10, you can use the new [Windows Terminal](https://github.com/microsoft/terminal). For the latest version of Windows 10, you can also try the new [Windows
Terminal](https://github.com/microsoft/terminal).
## Font ## Font
Since [Vim-airline](https://github.com/vim-airline/vim-airline) uses several Since [Vim-airline](https://github.com/vim-airline/vim-airline) uses several
Unicode symbols not available in normal font, we need to install [fonts Unicode symbols not available in normal font, we need to install [fonts
here](https://github.com/powerline/fonts) to make vim-airline look pretty. I am here](https://github.com/powerline/fonts) to make vim-airline look pretty. I am using [Hack](https://github.com/powerline/fonts/tree/master/Hack), and it looks
using [Hack](https://github.com/powerline/fonts/tree/master/Hack), and it looks great. Another great resource for programming font is the [nerd-font](https://github.com/ryanoasis/nerd-fonts) project.
great. Another great resource for programming font is the
[nerd-font](https://github.com/ryanoasis/nerd-fonts) project.
# Install Nvim # Install Nvim
There are various ways to install Nvim based on your system. Note that some There are various ways to install Nvim depending on your system. Current
of plugins I use require Nvim master. It is recommended to use the nightly configuration is tested against nvim 0.5.
version of nvim.
## Linux ## Linux
We can directly download the binary release from [here](https://github.com/neovim/neovim/releases/download/nightly/nvim-linux64.tar.gz). We can directly download the binary release from [here](https://github.com/neovim/neovim/releases/download/v0.5.0/nvim-linux64.tar.gz).
## Windows ## Windows
The easiest way to install Nvim on Windows is via chocolatey. First, install The easiest way to install Nvim on Windows is via chocolatey:
chocolatey. Then we can install neovim easily using the following command:
``` ```
# install the latest version of neovim
# choco install neovim --pre
choco install neovim choco install neovim
``` ```
The Nvim that chocolatey installs may not be up to date. To use the You may download from [nvim release](https://github.com/neovim/neovim/releases/download/v0.5.0/nvim-win64.zip) from GitHub and manually extract it.
cutting-edge features of Nvim, you may download [the nightly
release](https://github.com/neovim/neovim/releases/download/nightly/nvim-win64.zip) from GitHub and manually extract it.
## 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
brew install neovim brew install neovim
# If you want to install the latest version of neovim, use the following
# command instead.
# brew install --HEAD neovim
``` ```
After installing Nvim, we need to add the directory where the Nvim After installing Nvim, we need to add the directory where the Nvim executable
executable (`nvim` on Linux and macOS, `nvim.exe` on Windows) resides to the (`nvim` on Linux and macOS, `nvim.exe` on Windows) resides to the system
system `PATH`. `PATH`.
Make sure that you can call `nvim` from the command line after all these Make sure that you can call `nvim` from the command line after all these
setups. setups.
@ -222,21 +206,22 @@ directory, and run the following command to install this configuration:
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, use `:PackerInstall` to install all the After that, when we first open nvim, run command `:PackerInstall` to install
plugins. Since I use quite a lot of plugins (more than 60), it may take some all the plugins. Since I use quite a lot of plugins (more than 60), it may take
time to install all of them, depending on your network condition. some time to install all of them, depending on your network condition.
# Automatic Installation for Linux # # Automatic installation
To set up a workable Nvim environment in Linux, I use the bash script ## Automatic Installation for Linux #
[`nvim_setup_linux.sh`](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, Nvim itself and Nvim configs in this repo. dependencies, 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 should be set properly based on your `ADD_TO_SYSTEM_PATH` in the script should be set properly based on your
environment. environment.
# Automatic installation for Windows ## Automatic installation for Windows
Run script [nvim_setup_windows.ps1](nvim_setup_windows.ps1) under PowerShell. Run script [nvim_setup_windows.ps1](nvim_setup_windows.ps1) under PowerShell.