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:
parent
244bd41ff0
commit
d1d0efe9e7
@ -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`
|
||||||
|
|
||||||
|
|||||||
@ -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.
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user