Zig语言之Vim编辑器的LSP环境配置

俗话说,工欲善其事,必先利其器。要编写大型的Zig语言的项目,如果没有LSP插件的支持,是很不好用的。所以,这篇文章就介绍Zig语言的LSP插件的配置过程。我使用的Vim编辑器,版本是9.1,所以就介绍Vim9.0以上的Zig的LSP插件的配置过程。 首先是选择VIM下LSP插件的配置方式使用哪一种,其中有CoC、YouCompleteme等,但这两个都太重量级了,特别是CoC,还需要依赖node.js,node.js占用磁盘空间和内存都多,我又不写js。所以这两个都不想安装,选来选去,看到vim-lsp挺不错的,可以简单的通过vim-plug来安装。于是就选择了vim-lsp了。 首先,我们使用如下命令来安装vim-plug,我用的是macOS,所以选用unix的方式来安装: curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ 然后在.vimrc文件中加入如下的插件列表描述: call plug#begin() " List your plugins here Plug 'tpope/vim-sensible' call plug#end() 然后使用:PlugInstall命令安装插件即可。 接下来,我们安装vim-lsp相关的插件,以及自动补全相关的插件,类似vscode的浮窗插件等,主要有如下这些插件,加入到上面的plugin列表中即可: Plug 'prabirshrestha/vim-lsp' Plug 'prabirshrestha/asyncomplete.vim' Plug 'prabirshrestha/asyncomplete-lsp.vim' Plug 'mattn/vim-lsp-settings' Plug 'SirVer/ultisnips' Plug 'thomasfaingnaert/vim-lsp-snippets' Plug 'thomasfaingnaert/vim-lsp-ultisnips' 使用:PlugInstall命令把这些插件都安装上,耐心等待一段时间就可完成。 这些插件安装好后,还需要在.vimrc中加一些简单的配置,主要是键映射和快捷键定义。具体配置如下 " for asyncomplete inoremap pumvisible() ? "\" : "\" inoremap pumvisible() ? "\" : "\" inoremap pumvisible() ? asyncomplete#close_popup() : "\" " for vim-lsp function! s:on_lsp_buffer_enabled() abort setlocal omnifunc=lsp#complete setlocal signcolumn=yes if exists('+tagfunc') | setlocal tagfunc=lsptagfunc:| endif nmap <buffer> gd <plug>(lsp-definition) nmap <buffer> gs <plug>(lsp-document-symbol-search) nmap <buffer> gS <plug>(lsp-workspace-symbol-search) nmap <buffer> gr <plug>(lsp-references) nmap <buffer> gi <plug>(lsp-implementation) nmap <buffer> gt <plug>(lsp-type-definition) nmap <buffer><leader>rn <plug>(lsp-rename) nmap <buffer> [g <plug>(lsp-previous-diagnostic) nmap <buffer> ]g <plug>(lsp-next-diagnostic) nmap <buffer> K
(本章完)

相关推荐