Vim基础篇(十六)——代码补全插件coc.nvim
Vim基础篇(十六)——代码补全插件coc.nvim
前言:
让Vim像IDE一样实时编辑有补全提示代码,这能在大程度上提高代码编辑效率,而coc.nvim就是这样一款优秀的插件。
1 安装coc.nvim
插件 coc.nvim 支持LSP功能,并且支持异步特性,个人认为是目前最优秀的Vim代码补全插件。
在.vimrc文件中添加如下配置安装coc.nvim。
1 | Plug 'neoclide/coc.nvim' : {'branch': 'release'} |
在Vim中运行指令 :PlugInstall
完成插件安装。coc会创建 ~/.config/coc
目录,并将相关数据存于此目录下。
2 安装node
coc的运行依赖于node,在Ubuntu下安装只需在终端输入以下指令。
1 | sudo apt-get install nodejs |
3 配置coc.nvim
在.vimrc配置文件中添加以下配置,可根据自己喜好修改。
1 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
为了增加响应,还建议进行如下配置。
1 | set updatetime=100 "更新时间100ms。 |
4 配置c/c++补全支持
coc对c/c++的补全支持建议使用clangd,更多语言补全支持可在 Language-servers 查看,根据需要安装,下面以clangd举例。
首先需要确保在子系统Ubuntu上安装了clangd,在终端输入以下指令完成安装。
1 | sudo apt-get install clangd |
或者也可使用coc的clangd,在Vim中执行以下指令完成安装,两者选其一即可。
1 | :CocInstall coc-clangd |
安装完成后还需对coc进行配置,修改json文件。在Vim中输入指令打开 coc-settings.json 配置文件。
1 | :CocConfig |
根据 Language-servers 上的配置示例将配置赋值到json文件中,比如。
1 | { |
如果装的是coc-clangd则将 clangd
修改为 coc-clangd
。在原配置的基础上要加一个 {}
将代码括起来,否则会报json语法错误。
以上配置了使用 clangd
时的根目录标识为 .git/
和 .svn/
。需要注意的是 clangd
会识别工程根目录下的 compile_commands.json 文件(Ubuntu下可以通过CMake使用clang或gcc编译生成。),根据该文件去解析文件的路径,这样补全和语法检查才能找到其他文件内的代码。
4 配置Coc语法检查
Coc不仅能补全也能语法检查,如果你装了ALE等其他语法检查插件,语法报错可能出现冲突。Coc的语法检查和ALE一样,也能配合底部状态栏显示,不过Coc的语法检查能在浮动窗口显示错误和警告信息。因此建议装Coc就够了,既能补全又能语法检查,这两者用同一个插件也避免出现不同步问题。
使用Coc进行语法检查,为了快速在错误或警告提示之间跳转,建议进行如下按键映射。
1 | "neoclide/coc.nvim |