上手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.