1
0
mirror of https://github.com/jdhao/nvim-config.git synced 2025-06-08 14:14:33 +02:00
jdhao 5ea45d6275
Remove ambiwidth setting
ambiwidth setting gobbles color columns
2019-09-28 14:49:56 +08:00
2019-09-16 23:59:09 +08:00
2019-09-16 23:59:09 +08:00
2019-04-25 23:53:49 +08:00
2019-09-21 00:03:38 +08:00
2019-09-25 22:27:27 +08:00
2019-09-21 00:05:14 +08:00
2019-09-25 22:27:27 +08:00
2019-09-27 23:24:30 +08:00
2019-04-25 23:20:43 +08:00
2019-09-28 14:49:56 +08:00
2019-09-21 00:33:04 +08:00

Introduction

This is my Neovim configuration for all the platforms I use (Linux, Windows and MacOS). init.vim is the config file for terminal Neovim, and ginit.vim is the additional config file for GUI client of Neovim (I am using neovim-qt for now on Windows).

My configurations are heavily documented to make it as clear as possible. While you can download the whole configuration and replace yours, it is not recommended to do so. Good configurations are personal. Everyone should have his or her unique configuration. You are encouraged to copy from this configuration the part you feel useful and add it to your own configuration.

Features

  • Auto-completion for Python via Deoplete.
  • Source code linting via Neomake.
  • Beautiful status line via vim-airline.
  • Powerful sidebar via Nerdtree.
  • Tags navigation via tagbar.
  • Fast buffer jump via vim-sneak.
  • Open a file in current project quickly via fzf.
  • ......

Pre-requisite

There are a few requirements if you want to use Neovim for efficient editing.

Python

To use auto-completion and other features, you need to install Python 3. The easiest way to install Python 3 is via Anaconda.

Pynvim

Neovim relies on pynvim to communicate with plugins which utilizes its Python binding. Pynvim is required by plugin such as Deoplete.

Jedi

For Python code auto-completion to work, you need to install Jedi:

pip install jedi

Git

Git is used by plugin manager vim-plug to download plugins from GitHub or other Git repositories.

Since Git is usually pre-installed on Linux and Mac, you do not need to worry if you are on these two platforms. For Windows, install Git for Windows and make sure you can call git from the command line.

ctags

In order to use tags related plugins such as tagbar and gutentags, you need to install a ctags distribution. Universal ctags is preferred.

To install ctags on Mac, use Homebrew. To install it Windows, use chocolatey:

choco install universal-ctags

To install it on Linux, you need to build it yourself. See here.

Set its PATH properly and make sure you can call ctags from command line.

Ripgrep

Ripgrep is fast grep tool available for both Linux, Windows and Mac. It is used by several searching plugins.

For Windows and Mac, you can install it via chocolatey and homebrew. For Linux, you can download from its release page and install it.

Linters

A linter is a tool to check your code for possible issues or errors. Based on your programming languages, you may need to install various linters.

For other linters, please consult the plugin documentation. For Neomake (which is the linting plugin I currently use), a list of makers (i.e., linters) for different languages is listed here.

Terminal emulators

Which terminal emulator you are using greatly affects the appearance and functionalities of Neovim. Since Neovim supports true colors, terminals which support true colors are recommended. For a list of terminals which support true colors, see here.

For Mac, you can use iterm2. If you connect to Linux server on Windows, I recommend wsltty and Cygwin, both of them use mintty as the terminal emulator.

Font

Since Vim-airline uses several symbols not available in normal font, you need to install fonts here to make vim-airline look pretty. I am using Hack, and it looks great.

How to Install Neovim

There are various ways to install Neovim based on your system.

Linux

Follow the official guide and download the appimage from the release page.

For some Linux systems, you may not be able to run the appimage. You can directly download the tar ball from here and extract it to run Neovim.

Windows

The easiest way to install Neovim on Windows is via chocolatey. First, install chocolatey. Then you can install neovim easily with

# install latest version of neovim
# choco install neovim --pre

choco install neovim

The Neovim that chocolatey installs may not the latest version. To keep up-to-date with the latest features of Neovim, you may download the latest release from GitHub and manually extract it.

Mac

It is recommended to install neovim via Homebrew on MacOS. Simply run the following command:

brew install neovim
# If you want to install latest version of neovim, use the following command
# instead.
# brew install --HEAD neovim

After installing Neovim, you may need to add the directory where the Neovim executable (nvim on Linux and Mac, nvim.exe on Windows) resides to your system PATH.

Make sure that you can call nvim from the command line after all these setup.

Nvim settings

How to install this configuration

On Windows, the config is under the directory $HOME/AppData/Local/nvim1. On Linux and Mac, the directory is ~/.config/nvim. First, you need to remove all the files under the config directory, then use the following command to install this configuration:

git clone https://github.com/jdhao/nvim-config.git .

After that, when you first open nvim, all the plugins included in this configuration will be installed automatically for you. Since I use quite a lot of plugins (around 60 plugins), it may take some time for the installation process, depending on your network connection.

Trouble shooting

If you come across an issue, you can first use :checkhealth command provided by nvim to trouble-shoot yourself. Please read carefully the messages provided by health check.

If you still have an issue, you may open a new issue.

Further readings


  1. Use echo %userprofile% to see where your $HOME is. ↩︎

Description
A modern Neovim configuration with full battery for Python, C++, Markdown, LaTeX, and more...
Readme 6.3 MiB
Languages
Lua 52.2%
Vim script 38.9%
Vim Snippet 6.7%
TeX 2.2%