编辑器 Vim

为了使用更加现代化的 Vim 插件以及异步等特性,推荐使用 Vim8。

安装

macOS

$ brew install vim

Linux

$ curl -LO https://github.com/vim/vim/archive/v8.1.2418.tar.gz
$ tar zvxf v8.1.2418.tar.gz && cd vim-8.1.2418
$ LDFLAGS=-L$HOME/.local/lib ./configure --with-features=huge \
> --enable-multibyte \
> --enable-cscope \
> --prefix=$HOME/.local \
> --with-compiledby="ouyangsong" \
> --enable-pythoninterp=yes \
> --with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu \
> --enable-fail-if-missing

如果想直接通过 APT 安装带有 Python 支持的 Vim,可以参考下面的命令。

$ sudo apt-get remove --purge vim vim-runtime vim-gnome vim-tiny vim-common vim-gui-common
$ sudo apt install vim-nox

如果使用 Linuxbrew 管理软件的话,参考上面 macOS 的安装方法。

依赖

必须的依赖

可选的依赖

  • ripgrep 强大的搜索软件

  • protoc-gen-lint proto 文件的检测工具

  • flake8 Python 代码风格检测

插件

网上很多 Vim 配置由于年久失修,其中推荐的插件很多没有使用 Vim8 的新特性或者性能存在问题。下面介绍日常编程中使用频率高的插件。

外观

gruvbox 项目之前的作者没有继续维护,社区版本还有热心志愿者继续维护该项目。所以如果想用 gruvbox 主题的话,推荐使用社区版。

Dark mode

通过将不同层次的括号高亮为不同的颜色, 帮助你阅读世界上最复杂的代码。

rainbow_python

显示代码缩进的对齐线,对于写 Python 这类依靠缩进判断语法块的语言还是很有用的。 建议只针对需要的文件类型开启,否则在部分文件类型,比如 JSON 上会导致显示有问题。

indentLine_patched_font

在左边显示 Git 中文件中每一行被修改的状态。

vim-gitgutter

轻量级但是功能强大的状态栏插件,可以配合显示其他插件的一些插件。

powerline (default)

增强

使用 Language Server Protocol 对代码进行错误检查,以及支持对应的修复。 需要安装对应的代码检测软件,比如对 C/C++ 代码检查可以安装 ccls

针对不同的代码,自动选择相对应的注释符号来实现快速注释与取消注释某些代码。

对 Vim 中本身就有的范围词性进行扩充,支持更多范围选择。

将 Vim 中某些本身只能重复一次的语句扩充至可以无限重复。

自动补全括号等其他需要闭合的符号。

实现快速移动,启动快速移动后,可以通过两个字符就可以移动到任何位置。

vim-easymotion

在顶部用 tab 的方式显示已经存在的 buffer。 这个功能其实 vim-airline 已经自带,但是如果使用 lightline.vim 就需要安装本插件。

vim-buftabline

自动移除多余的空格,包括尾部的空格和含有空格的行。

当长按 J 或者 K 键进行上下移动时会不断加速移动。

补全

异步的代码补全引擎,可以管理和安装各个语言的插件。强力推荐!

coc.nvim

提供一些常用的代码片段。