Language Server Protocol (LSP) 语言服务协议

Vim 做 LSP Client,和 LSP Server 进行通信。

LSP Server 有:

  • C/C++ -> clangd
  • Python -> python-language-server

Vim LSP 插件

vim-lsp

安装

Plugin 'prabirshrestha/asyncomplete.vim'
Plugin 'prabirshrestha/async.vim'
Plugin 'prabirshrestha/vim-lsp.vim'
Plugin 'prabirshrestha/asyncomplete-lsp.vim'

" vim-lsp
au User lsp_setup call lsp#register_server({'name': 'clangd', 'cmd': {server_info->['/usr/local/llvm80/bin/clangd', '-background-index']}, 'whitelist': ['c', 'cpp']})
au User lsp_setup call lsp#register_server({'name': 'pyls', 'cmd': {server_info->['python3.6',  '-m', 'pyls']}, 'whitelist': ['python']})
:map K :LspHover<CR>

使用

:LspHover      悬停信息

:LspDeclaration     转到声明
:LspDefinition      转到定义
:LspImplementation  转到实现
:LspTypeDefinition  转到类型定义

:LspPeekDeclaration     预览声明
:LspPeekDefinition      预览定义
:LspPeekImplementation  预览实现
:LspPeekTypeDefinition  预览类型定义

:LspRename               重命名符号
:LspDocumentFormat       格式化整个文档
:LspDocumentRangeFormat  格式化选中文档

:LspDocumentSymbol   显示文档符号
:LspWorkspaceSymbol  搜索/显示 工作区符号

:LspNextError     跳到下一个错误
:LspPreviousError 跳到上一个错误

:LspReferences        查找引用
:LspNextReference     跳到下一个引用
:LspPreviousReference 跳到上一个引用

:LspDocumentDiagnostics 获取文旦诊断信息

:LspStatus      显示语言服务器信息
:LspCodeAction  获取可以应用到这个文件可能的命令列表

vim-lsc

安装

Plugin 'natebosch/vim-lsc'

" vim-lsc
let g:lsc_server_commands = {'cpp': '/usr/local/llvm80/bin/clangd', 'python': 'python3.6 -m pyls'}
let g:lsc_auto_map = v:true
Last modification:February 24th, 2020 at 08:51 pm
 Support
如果觉得我的文章对你有用,请随意赞赏