上手Coc.nvim 齐全指南

介绍

Coc.nvim 是一个基于NodeJS 的实用于Vim8, Neovim 的Vim 智能补全插件。
领有残缺的LSP 反对。配置、应用形式及插件零碎的整体格调相似 VSCode.

对于我本人来说,抉择它的起因就是它安装简单,功可能用。相比YouCompleteMe 而言装置过程几乎太难受了。

更多的信息能够参见Wiki.

另:因为Coc 自身是Vim 的一个插件而已,但它又有本人的插件零碎,所以上面我会将Coc 的插件叫做子插件以作辨别。

装置

前提

因为Coc.nvim 是基于NodeJS 的,所以如果机器上没有NodeJS 须要先装置NodeJS.

Vundle

增加上面的内容到.vimrc:

Plugin 'neoclide/coc.nvim'

Vim 外面运行以下命令:

:source %:PluginInstall

Vundle 版本低于0.10.2 的将Plugin 替换成Bundle.

NeoBundle

增加上面的内容到.vimrc:

NeoBundle 'neoclide/coc.nvim'

Vim 外面运行以下命令:

:source %:NeoBundleInstall

VimPlug

增加上面的内容到.vimrc:

Plug 'neoclide/coc.nvim'

Vim 外面运行以下命令:

:source %:PlugInstall

Pathogen

切换到Pathogen 目录下并拉对应仓库即可:

cd ~/.vim/bundlegit clone https://github.com/neoclide/coc.nvim

增加插件

因为Coc 自身并不提供具体语言的补全性能,更多的只是提供了一个补全性能的平台,
所以在装置实现后,咱们须要装置具体的语言服务以反对对应的补全性能。
关上Vim 并应用以下命令即可主动装置子插件及相干依赖。

:CocInstall coc-json coc-tsserver

其中coc-json coc-tsserver 这些是对应的反对JSON, Typescript 的相干子插件。
要检索都有哪些子插件能够间接在Npm 上查找coc.nvim,
亦或者应用coc-marketplace 间接在Vim 外面进行治理,装置命令如下:

:CocInstall coc-marketplace

装置完后用上面命令能够关上面板,Tab 可对高亮的子插件进行装置卸载等操作。

# 关上面板:CocList marketplace# 搜寻python 相干子插件:CocList marketplace python

用高低能够抉择,按Tab 能够进行对应操作。

另外在这里 有一份绝对残缺的已反对的子插件列表,但不确定是否全面。

批改配置

在Vim 中能够对各个内置的性能或者外加的子插件进行配置。就相似Vscode 的配置零碎一样。具体能够设置什么内容能够参见仓库的Wiki

我本人用的不多,只增加了coc-prettier 相干的几个:

{  "prettier.singleQuote": true,  "prettier.trailingComma": "all",  "prettier.bracketSpacing": false}

~/.vimrc 中增加以下内容,能够应用Tab 和 Shift+Tab 进行抉择补全。

" Use <Tab> and <S-Tab> to navigate the completion listinoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"

增加罕用快捷键

为一些罕用的性能增加快捷键,能够在 ~/.vimrc 中写入:

" Use <Ctrl-F> to format documents with prettiercommand! -nargs=0 Prettier :CocCommand prettier.formatFilenoremap <C-F> :Prettier<CR>

下面这段配置增加了一个Prettier 的快捷命令 :Prettier 并增加了快捷键Ctrl+F.