Linux_vim代碼補全糾錯插件配置與使用


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) 至此兩個主要插件已配置完全,其他插件因為本人未使用過,就不做說明了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM