Vim配置LSP

2023年07月17日星期一晴北京市北京师范大学, 在 Neovim 中成功配置好了各插件和语法高亮,而且也非常好用。但是 vim 也升级到了 vim9 , 这两个编辑器都是很好的,一时间不知做何种选择,就性能来讲目前感觉还是 Neovim 理胜一筹,而目前为了保持 vim 的同步跟进,我首先将 vim 的插件管理器由 vundle 切换为 vim-plug , 其管理插件的效率更高一些。今天,则实现了 vim 的 LSP 配置。

Coc.nvim 介绍

Coc.nvim 是一个基于 NodeJS 的适用于 Vim8 以上和 Neovim 的智能补全插件,其拥有完整的 LSP 支持,其主要特点就是安装使用简单,这也是因为我的 Neovim 已经配置好了,不愿意在 vim 下再多花时间了。 同时 Coc 本身是 Vim 的一个插件,但是它同时又有自己的插件系统,Coc 的插件我称之为子插件。

Coc.nvim 安装

Coc.nvim 是基于 NodeJS 的,所以确保已经安装了 NodeJS , 使用 vim-plug 安装 Coc.nvim

~/.vimrc
1
Plug `git@github.com:neoclide/coc.nvim'

打开 vim 在其命令模式下运行

1
2
:source %
: PlugInstall

稍等片刻 Coc.nvim 完成安装。

添加语言补全子插件

打开 vim 在其命令模式下运行

安装子插件管理器
1
:CocInstall coc-marketplace
打开面板
1
:CocList marketplace
搜索python相关子插件
1
:CocList marketplace python

用上下可以选择对应的插件,然后按 Tab 会弹出操作对话框,按 i 执行安装。

常用配置

配置 Tab 和 Shift+Tab 进行选择补全 ,同时绑定一些常用的快捷键

~/.vimrc
1
2
3
4
5
6
" Use <Tab> and <S-Tab> to navigate the completion list
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
" Use <Ctrl-F> to format documents with prettier
command! -nargs=0 Prettier :CocCommand prettier.formatFile
noremap <C-F> :Prettier<CR>