Vim使用常見插件安裝

一、前言
各種IDE工具有代碼提示以及可以方便切換到各個文件,所以也想在VIM上實現近似的功能。因爲目前Linux開發都是在遠程連接服務器進行開發,常用的遠程連接工具:xshell、putty、MobaXterm等。雖然大部分Linux開發還是使用純VIM開發,但是對於提高效率來說,安裝需要的插件,仍然是有必要的。
配置界面
本文主要講述常用插件的安裝:Bundle、YouCompleteMe、nerdtree、pathogen、tagbar、a.vim等。

二、安裝過程

1、安裝Bundle插件——插件管理

          git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/plugin/Vundle.vim

         安裝後,可以使用Plugin Install、PluginList、PluginSearch,用於插件安裝等;

2、安裝a.vim——用於文件切換

      官網地址:https://www.vim.org/scripts/script.php?script_id=31,下載後的a.vim直接~/.vim/plugin/中,即可實現頭文件和源文件進行切換;

       操作:

        :A 頭文件/源文件切換
        :AS 分割窗後並切換頭/源文件(切割爲上下兩個窗口)
        :AV 垂直切割窗口後切換頭/源文件(切割爲左右兩個窗口)
        :AT 新建Vim標籤式窗口後切換
        :AN 在多個匹配文件間循環切換,將光標所在處單詞作爲文件名打開
        :IH 切換至光標所在文件
        :IHS 分割窗口後切換至光標所在文件(指將光標所在處單詞作爲文件名打開)
        :IHV 垂直分割窗口後切換
        :IHT 新建標籤式窗口後切換
        :IHN 在多個匹配文件間循環切換

3、YouCompleteMe的安裝(重頭戲)——實現補全,代碼檢查

      (1) 安裝基礎環境:

             sudo apt-get install vim ctags libpython3.6-dev

      (2) 安裝apt-vim

             git clone https://raw.githubusercontent.com/egalpin/apt-vim,執行sh install.sh,執行成功後,會安裝pathogen、tagbar兩個插件;

              apt安裝於~/.vimpkg/bin/apt-vim 目錄,執行source ~/.bashrc環境變量中可進行調用。

      (3) 安裝nerdtree文件列表

            apt-vim install -y https://github.com/scrooloose/nerdtree.git

      (4) 安裝YouCompleteMe插件

            apt-vim install -y https://github.com/Valloric/YouCompleteMe.git

           cd ~/.vim/bundle/YouCompleMe/

           安裝各種第三方庫,更新子模塊;git submodule update --init --recursive

      (5) 對於64位系統,可以直接使用./install.py --clang-completer進行YCM插件的安裝;

      (6)對於32位系統而言,由於直接使用./install.py --clang-completer提示Clang.so庫無法正確鏈接( "libclang-${CLANG_VERSION}-i386-unknown-freebsd11"下載是有問題的),所以使用apt install clang-10進行相關包的下載,將/usr/lib/i386-linux-gnu/libclang-10.so替換lib/libclang.so.10文件,該lib位置放於~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp該目錄,修改如下

CMakeList.txt![build.py](https://img-blog.csdnimg.cn/2020070414565680.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ZlbmdfODA3MQ==,size_16,color_FFFFFF,t_70
(6)最終顯示如下,無報錯則表示安裝成功
install三、.vimrc配置(相關插件配置)

"Vundle install
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

Plugin 'gmarik/Vundle.vim'
Plugin 'bundle/nerdtree'
Plugin 'bundle/tagbar'
Plugin 'bundle/pathogen'
Plugin 'bundle/YouCompleteMe'

call vundle#end()

"Tagbar
let g:tagbar_width=35 "寬度
let g:tagbar_ctags_bin='/usr/bin/ctags' "設置tagbar使用的ctags的插件
let g:tagbar_right=1 "位置在右側
let g:tagbar_autofocus=0 "是否自動聚焦
autocmd BufReadPost *.cpp,*.c,*.h,*.hpp,*.cc,*.cxx call tagbar#autoopen() "打開文件自動打開tagbar
nmap <F6> :TagbarToggle<CR> "快捷鍵

" NERD tree
let NERDChristmasTree=0
let NERDTreeWinSize=35
let NERDTreeChDirMode=2
let NERDTreeIgnore=['\~$']
let NERDTreeShowBookmarks=1
let NERDTreeWinPos="left"
""修改樹的顯示圖標
let g:NERDTreeDirArrowExpandable = '+'
let g:NERDTreeDirArrowCollapsible = '-'
"""窗口是否顯示行號
let g:NERDTreeShowLineNumbers=1
""不顯示隱藏文件
let NERDTreeShowHidden=1
" Automatically open a NERDTree if no files where specified
autocmd vimenter * if !argc() | NERDTree | endif
" Close vim if the only window left open is a NERDTree
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
" Open a NERDTree
nmap <F5> :NERDTreeToggle<cr>

" #####YouCompleteMe Configure
let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py'
let g:ycm_confirm_extra_conf=0 "關閉加載.ycm_extra_conf.py提示`
"YouCompleteMe "自動開啓語義補全
let g:ycm_seed_identifiers_with_syntax = 1
"在註釋中也開啓補全
let g:ycm_complete_in_comments = 1
let g:ycm_collect_identifiers_from_comments_and_strings = 0
"字符串中也開啓補全
let g:ycm_complete_in_strings = 1
let g:ycm_collect_identifiers_from_tags_files = 1
"開啓基於tag的補全,可以在這之後添加需要的標籤路徑
let g:ycm_collect_identifiers_from_tags_files = 1 "開始補全的字符數
let g:ycm_min_num_of_chars_for_completion = 2
"補全後自動關閉預覽窗口
let g:ycm_autoclose_preview_window_after_completion = 1
"禁止緩存匹配項,每次都重新生成匹配項
let g:ycm_cache_omnifunc=0
"回車即選中當前項
inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>"
"離開插入模式後自動關閉預覽窗口
autocmd InsertLeave * if pumvisible() == 0|pclose|endif
"語法關鍵字補全
let g:ycm_seed_identifiers_with_syntax = 1
"在實現和聲明之間跳轉,並分屏打開
let g:ycm_goto_buffer_command = 'horizontal-split'
"nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR> " 跳轉到定義處
"nnoremap <Leader>g :YcmCompleter GoToDefinitionElseDeclaration<CR>
nmap <F12> :YcmCompleter GoToDefinitionElseDeclaration<CR>
nnoremap <Leader>j :YcmCompleter GoToInclude<CR>
execute pathogen#infect()
call pathogen#helptags()

備註:若YCM比對是顏色比較亮色,導致無法代碼查看,可以更換主題,colorscheme industry

參考鏈接:
https://blog.csdn.net/qq_37968132/article/details/79856758
https://www.cnblogs.com/jhssd/p/6803689.html

以下是新的個人博客的地址:http://106.53.224.102:8080/wordpress-zh/feng_8071/http://106.53.224.102:8080/wordpress-zh/feng_8071/vim使用常見插件安裝//

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章