aboutsummaryrefslogtreecommitdiff
path: root/docs/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/README.md')
-rw-r--r--docs/README.md133
1 files changed, 59 insertions, 74 deletions
diff --git a/docs/README.md b/docs/README.md
index c891648..c634856 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,20 +1,17 @@
# Pre-requisite
-There are a few dependencies if we want to use Nvim for efficient editing and
-development work.
+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. 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.
## Pynvim
-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
-[Semshi](https://github.com/numirias/semshi).
+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 [wilder.nvim](https://github.com/gelguy/wilder.nvim).
```
pip install -U pynvim
@@ -22,8 +19,7 @@ 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 for completion,
-linting, go to definition, etc.
+[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.
```
pip install 'python-lsp-server[all]' pylsp-mypy pyls-isort
@@ -57,9 +53,8 @@ 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 and set its path:
```bash
npm install -g vim-language-server
@@ -69,17 +64,15 @@ export PATH="$HOME/.npm-packages/bin:$PATH"
## Git
-Git is used by the plugin manager [packer.nvim](https://github.com/wbthomason/packer.nvim) to clone plugins from GitHub or
-other Git repositories.
+Git is used by the plugin manager [packer.nvim](https://github.com/wbthomason/packer.nvim) to clone plugins from Git repositories.
-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 Windows](https://git-scm.com/download/win)
-and make sure you can call `git` from the command line.
+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 Windows](https://git-scm.com/download/win) and make sure you can run `git` from command line.
## ctags
-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.
+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 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
```
-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 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 call `ctags` from command line.
+Set its PATH properly and make sure you can run `ctags` from command line.
## Ripgrep
-[Ripgrep](https://github.com/BurntSushi/ripgrep), aka, `rg`, is a fast grepping
-tool available for both Linux, Windows and macOS. It is used by several
-searching plugins.
+[Ripgrep](https://github.com/BurntSushi/ripgrep), aka, `rg`, is a fast grepping tool available for both Linux, Windows and macOS.
+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 executable file from its [release
-page](https://github.com/BurntSushi/ripgrep/releases) and install it.
+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.
## Linters
-A linter is a tool to check the source code for possible style and syntax
-issues. Based on the programming languages we use, we may need to install
-various linters.
+A linter is a tool to check the source code for possible style and syntax issues.
+Based on the programming languages we use, we may need to install various linters.
+ Python: [pylint](https://github.com/PyCQA/pylint) and [flake8](https://github.com/PyCQA/flake8).
+ Vim script: [vint](https://github.com/Kuniwak/vint).
## Terminal emulators
-Which [terminal emulator](https://en.wikipedia.org/wiki/Terminal_emulator) we
-choose to use greatly affects the appearance and functionalities 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).
+Which [terminal emulator](https://en.wikipedia.org/wiki/Terminal_emulator) we choose to use greatly affects the appearance and functionalities 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/), or [Alacritty](https://github.com/jwilm/alacritty).
-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.
+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 the new [Windows
-Terminal](https://github.com/microsoft/terminal).
+For the latest version of Windows 10, you can also try [Windows Terminal](https://github.com/microsoft/terminal).
-## Font
+## Patched Fonts
-Since statusline or file explorer plugins often use Unicode symbols not
-available in normal font, we need to install a patched font from the [nerd-fonts](https://github.com/ryanoasis/nerd-fonts) project.
+Since statusline or file explorer plugins often use Unicode symbols not available in normal font,
+we need to install a patched font from the [nerd-fonts](https://github.com/ryanoasis/nerd-fonts) project.
# Install Nvim
-There are various ways to install Nvim depending on your system. Current
-configuration is tested against nvim v0.6.1.
+There are various ways to install Nvim depending on your system.
+Current configuration is tested against nvim v0.6.1.
## Linux
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
-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
-```
-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
-It is recommended to install neovim via [Homebrew](https://brew.sh/) on macOS.
-Simply run the following command:
+It is recommended to install neovim via [Homebrew](https://brew.sh/) on macOS. Simply run the following command:
```bash
brew install neovim
```
-After installing Nvim, we need to add the directory where the Nvim executable
-(`nvim` on Linux and macOS, `nvim.exe` on Windows) resides to the system `PATH`.
-
-Make sure that you can call `nvim` from the command line after all these
-setups.
+After installing Nvim, we need to add the directory where the Nvim executable resides to the system
+Make sure that you can run `nvim` from the command line after all these setups.
# Setting up Nvim
## Install plugin manager packer.nvim
-I use packer.nvim to manage my plugins. We need to install packer.nvim on our
-system first.
+I use packer.nvim to manage my plugins. We need to install packer.nvim on our 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"
```
-For macOS and Linux, use the following command:
+For macOS and Linux, run the following command:
```bash
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
-On Windows, the config directory is `$HOME/AppData/Local/nvim`[^1]. On Linux
-and macOS, the directory is `~/.config/nvim`. 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 to install this configuration:
+On Windows, the config directory is `$HOME/AppData/Local/nvim`[^1].
+On Linux and macOS, the directory is `~/.config/nvim`.
+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:
```
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`. Since I use quite a lot of
-plugins (more than 60), it may take some time to install all of them, depending
-on your network condition.
+After that, when we first open nvim, run command `:PackerSync` to install all the plugins and generate `packer_compiled.lua`.
+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 [this bash script](nvim_setup_linux.sh) to automatically install necessary dependencies,
+Nvim itself and Nvim configs in this repo.
-Note that the variable `PYTHON_INSTALLED`, `SYSTEM_PYTHON` and
-`ADD_TO_SYSTEM_PATH` in the script should be set properly based on your
-environment.
+Note that the variable `PYTHON_INSTALLED`, `SYSTEM_PYTHON` and `ADD_TO_SYSTEM_PATH` in the script
+should be set properly based on your environment.
## Automatic installation for Windows