Bootstrap

Vim实现代码补全功能(保姆级教程 亲测可用)

学费了这个赶紧装一波吧~, 你可以不用但一定要在你盆友面前用~

Vim作为神之编辑器,其所拥有插件自然也是非常丰富的,本篇文章介绍如何使用Vundle插件管理器 来管理Vim众多的插件,实现代码补全功能。

第一步 下载并安装 Vundle

执行下述命令,下载安装插件管理器 Vundle 并安装到默认的Vim插件目录

git clone [email protected]:xioayu/vundle-vim.git ~/.vim/bundle/Vundle.vim

第二步 配置Vundle和YouCompleteMe插件

配置.vimrc文件:在Vim配置文件~/.vimrc中添加Vundle的相关配置 (windows 和linux 编码不一致可能会出现编码识别问题,猴子小编已经调整过编码,伙伴们可以自己更改调整呀

示例如下:

set laststatus=2
set tabstop=4

set nocompatible            " 关闭兼容模式
filetype off                " 必须在插件配置之前

set rtp+=~/.vim/bundle/Vundle.vim " 设置插件目录和Vundle
call vundle#begin()

Plugin 'VundleVim/Vundle.vim'   " 安装Vundle插件管理器
Plugin 'scrooloose/nerdtree'    " 安装nerdtree插件
Plugin 'ycm-core/YouCompleteMe' " 安装YouCompleteMe代码补全插件

call vundle#end()

" YouCompleteMe 配置
let g:ycm_key_list_select_completion = ['<Tab>']
let g:ycm_key_list_previous_completion = ['<S-Tab>']
let g:ycm_key_list_next_completion = ['<Tab>']

let g:ycm_key_invoke_completion = '<C-Space>'
let g:ycm_key_completion_timeout = 0.5
let g:ycm_auto_trigger = 1
let g:ycm_auto_trigger_key = '<C-Space>'

filetype plugin indent on     " 必须在插件配置之后启用文件类型检测和插入模式缩进

Note: - Vim 配置文件中使用 双引号 作行注释符号 "

日后我们需要安装、卸载插件的插件地址只需写在 call vundle#begin() 和 call vundle#end() 之间即可,这里使用YouCompleteMe插件(YouCompleteMe是一个强大的代码补全插件) 最终的配置内容如下图所示。

关闭vimrc, 运行vim 再运行 :PluginInstall,安装成功如图:


第三步 编译 YCM 服务器

打开一个终端窗口,并导航到 ~/.vim/bundle/YouCompleteMe 目录,运行以下命令来下载YCM依赖并编译 YCM 服务器:

git submodule update --init --recursive

python3 install.py --clangd-completer --verbose

python3 install.py --clangd-completer --verbose 可以看到具体的编译日志,可以根据提示解决可能出现的编译问题, 一般会卡在缺少依赖包......

如果出现下图错误信息, 使用 python3 --version 查看版本, 然后直接安装对应版本的 python 开发包即可:


出现如下信息表示YCM已经配置成功了...  (日志打印的信息可能会存在差异 无伤大雅)


第四步 测试代码补全功能

现在可以来测试一下 YCM插件的代码补全功能了,可以根据自己的喜好配置 ~/.vim/bundle/YouCompleteMe/.ycm_extra_conf.py 和 ~/.vimrc 文件,效果如下图所示:


关于 Vim 代码补全的配置也是挺有趣的,对于很多大佬来说钟爱于使用Vim,猴子小编也是渐渐的爱上了Vim

点个关注,寻找猴子小编不迷路!

;