Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
170 lines (103 sloc) 5.54 KB

编辑器 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

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

参考链接

https://askubuntu.com/a/602249

https://github.com/ycm-core/YouCompleteMe/wiki/Building-Vim-from-source

https://www.cnblogs.com/freeweb/p/9321520.html

You can’t perform that action at this time.