Linux_vim代码补全纠错插件配置与使用

  • A+
所属分类:linux技术

Linux VIM常用的插件,主要针对C/C++编程语言

近段时间迷上了VIM这款编辑器,觉得使用起来非常方便,因此分享下自己使用并且觉得还不错的两个插件

syntastic代码纠错插件以及YouCompleteMe代码补全插件

1. 下载vundle插件管理工具

		git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim 

2. 使用vundle插件管理工具来进行插件的安装

终端通过打开~/.vimrc文件添加以下内容

		set rtp+=~/.vim/bundle/Vundle.vim   "需要安装的插件按照以下格式放在begin()之后 		call vundle#begin()  		Plugin 'gmarik/Vundle.vim'          "安装插件管理工具 		Plugin 'scrooloose/syntastic'       "安装代码纠错工具 		Plugin 'Valloric/YouCompleteMe'     "安装代码补全工具  		call vundle#end()                   "需要安装的插件需要放在end(之前) 		filetype plugin indent on           "允许使用插件功能 

3. 插件管理工具的使用方式

- 将自己需要安装的插件放在vundle#begin和vundle#end之间即可,格式为

(1) Github上vim-scripts仓库的插件
		只需要写出"仓库名" 
(2) Github上非vim-scripts仓库的插件
		需要写出"用户名/仓库名" 
(3) git支持,但是不在Github上的插件
		需要写出"git全路径" 

- 开始使用vundle安装插件

(1) 运行vim,再输入命令再运行 :PluginInstall,等待安装完毕
(2) 通过命令行直接安装 vim +PluginInstall +qall

- 卸载不需要的插件

(1) 编辑.vimrc文件移除的你要移除的插件所对应的plugin那一行
(2) 保存退出
(3) 重新打开vim,输入命令:BundleClean

- 部分插件可能安装后需要重新编译后才能生效,如YouCompleteMe自动补全插件

(1) 编译此插件需要安装有Python环境
		sudo apt-get install python-dev 
(2) 安装cmake
		sudo apt-get install cmake 
(3) 安装clangd
		sudo apt-get install clangd 
(4) 去到插件对应路径
		cd   ~/.vim/bundle/YouCompleteMe/ 
(5) 开始编译
		./install.sh  --clangd-completer 
(6) 修改配置文件 ~/.vim/bundle/YouCompleteMe/third_party/ycmd/examples/.ycm_extra_conf.py
		在flags数组中按照原添加头文件路径的格式添加自定义头文件路径或者需要的头文件路径 
(7) 接着在~/.vimrc配置文件中配置好插件的设置即可使用
		配置如下: 		"======================以下配置是代码补全工具YouCompleteMe的常用功能参数配置,可根据自己需求进行配置======================" 		let g:ycm_python_binary_path='/usr/bin/python3' 		" YouCompleteMe 通过这个cm_global_ycm_extra_conf来获得补全规则,可以如下指定,也可以每次放置在工作目录 		let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/third_party/ycmd/examples/.ycm_extra_conf.py 		"让YouCompleteMe同时利用原来的ctags 		let g:ycm_collect_identifiers_from_tag_files = 1 		" 跳转快捷键,可自定义是否开启或者定义按键 		"nnoremap <C-I> :YcmCompleter GoToDeclaration<CR>| 		"nnoremap <C-K> :YcmCompleter GoToDefinition<CR>| 		"nnoremap <F12> :YcmCompleter GoToDefinitionElseDeclaration<CR>| 		" 停止提示是否载入本地ycm_extra_conf文件 		let g:ycm_confirm_extra_conf = 0 		" 语法关键字补全 		let g:ycm_seed_identifiers_with_syntax = 1 		" 开启函数原型提示 		let g:ycm_add_preview_to_completeopt = 1 		" 关闭语法检查 		let g:ycm_show_diagnostics_ui = 0 		" 让补全行为与一般的IDE一致 		set completeopt =longest,menu 		" 从第3个键入字符就开始罗列匹配项 		let g:ycm_min_num_of_chars_for_completion=3 		" 在注释输入中也能补全 		let g:ycm_complete_in_comments = 1 		" 在字符串输入中也能补全 		let g:ycm_complete_in_strings = 1 		" 注释和字符串中的文字也会被收入补全 		let g:ycm_collect_identifiers_from_comments_and_strings = 1 		" 不显示开启vim时检查ycm_extra_conf文件的信息 		let g:ycm_confirm_extra_conf=0 		" 每次重新生成匹配项,禁止缓存匹配项 		let g:ycm_cache_omnifunc=0 		" 查询ultisnips提供的代码模板补全,若不需要,设置为0 		let g:ycm_use_ultisnips_completer=1 		" 设置打开的文件最大大小限制,源程序文件太大必备(自定义) 		let g:ycm_disable_for_files_larger_than_kb = 1000*1024*1024 		" 设置标识符补全的最大候选项数量,0表示没有限制 		let g:ycm_max_num_identifier_candidates = 10 		" 设置语义补全的最大候选项数量,0表示没有限制 		let g:ycm_max_num_candidates = 50 		" 0表示关闭ycm语义补全和标识符补全触发器 		let g:ycm_auto_trigger=1 		" 文件类型白名单,vim打开这些类型文件时会开启YCM。*表示所有文件类型 		let g:ycm_filetype_whitelist = { '*': 1 } 		" 选中补全选项后自动关闭预览窗口 		let g:ycm_autoclose_preview_window_after_completion = 1 		"======================以下配置是代码纠错工具syntastic的常用功能参数配置,可根据自己需求进行配置======================" 		" 设置error和warning的标志 		let g:syntastic_enable_signs = 1 		let g:syntastic_error_symbol='✗' 		let g:syntastic_warning_symbol='►' 		" List(相当于QuickFix)窗口,如果你发现syntastic因为与其他插件冲突而经常崩溃,将下面选项置0 		let g:syntastic_always_populate_loc_list = 1 		" List,默认值为2,表示发现错误时不自动打开,当修正以后没有再发现错误时自动关闭,置1表示自动打开自动关闭,0表示关闭自动打开和自动关闭,3表示自动打开,但不自动关闭 		let g:syntastic_auto_loc_list = 1 		"修改Locaton List窗口高度 		let g:syntastic_loc_list_height = 3 		" 打开文件时自动进行检查 		let g:syntastic_check_on_open = 1 		" 自动跳转到发现的第一个错误或警告处 		let g:syntastic_auto_jump = 1 		" 进行实时检查,如果觉得卡顿,将下面的选项置为1 		let g:syntastic_check_on_wq = 0 		" 高亮错误 		let g:syntastic_enable_highlighting=1 		" 让这个工具支持C++,选定自己的C++头文件所在路径 		let g:syntastic_cpp_include_dirs = ['/usr/include/c++/9','/usr/include/x86_64-linux-gnu/c++/9'] 		let g:syntastic_cpp_checkers = ['gcc'] 		let g:syntastic_cpp_compiler = 'g++' 		let g:syntastic_cpp_compiler_options = '-std=c++11 -Wall -Wextra' 
(8) 至此两个主要插件已配置完全,其他插件因为本人未使用过,就不做说明了