VIM配置IDE
轉載於:https://blog.csdn.net/andre617/article/details/53496490#%E8%84%9A%E6%B3%A8
由於YCM需要vim支援python,需要自己編譯vim,所以建議先裝YCM,關於YCM的安裝比較多,單獨寫了一篇。
目標安裝:
plugin:管理vim外掛
auto-pairs:用於括號匹配
NERDTree:顯示目錄樹
MiniBufExplorer:顯示已開啟檔案
ctags:建立程式碼索引
taglist:列出程式碼的函式,變數,巨集
準備工作
ubuntu安裝
sudo apt-get install git
第一個外掛pathogen
為了不讓外掛安裝後目錄顯得凌亂,我們很有必要安裝一個管理外掛的外掛,這樣功能的外掛有好幾個,這裡只推薦一個pathogen
專案地址
https://github.com/tpope/vim-pathogen
安裝
可以通過git安裝,也可以直接下載外掛檔案,由於這個外掛只有一個檔案,我們選擇後者,而該外掛的說明文件上也是用的這種方法。
mkdir -p ~/.vim/autoload ~/.vim/bundle && curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
然後,就沒有然後,這個外掛就安裝完了。是不是覺得so easy! 不過先別急,我們還要對外掛進行一些配置,用vim開啟~/.vimrc,輸入如下三行類容
execute pathogen#infect()
syntax on
filetype plugin indent on
儲存退出,這個外掛的安裝配置就完成了,怎麼驗證外掛有沒有生效呢,別急,後面有的是機會驗證。我們先來講講vim外掛是個什麼東西。
此時你的~/.vim目錄結構應該是這樣的
├── autoload │ └── pathogen.vim └── bundle
可見~/.vim目錄下是有兩個目錄,其中autoload放的是pathogen外掛,所謂的外掛其實就是一個指令碼,當vim啟動時,它會自動載入~/.vim/autoload目錄下的指令碼,由於你~/.vimrc裡配置了execute pathogen#infect()
,所以它會去自動的執行腳本里這個函式,至於這個函式是怎麼實現的,我們不用管它,總之這個函式的功能就是去載入~/.vim/bundle目錄下你安裝的所有外掛,pathogen的管理方法大致就是這樣,而我們也看到,vim的外掛其實就是一個指令碼檔案,豐富一點的還會帶有說明文件等其它內容,後面我們碰到了再講解。
auto-pairs
專案地址
https://github.com/jiangmiao/auto-pairs(感興趣的可以看)
功能
自動匹配括號、引號等
安裝
git clone git://github.com/jiangmiao/auto-pairs.git ~/.vim/bundle/auto-pairs
這樣就將auto-pairs在github上的專案檔案下載到了~/.vim/bundle/auto-pairs目錄下
測試
隨便開啟一個檔案,輸入左括號’(‘,看右括號是不是自動出現了,然後刪除左括號,看右括號是不是也被刪除了。當然功能遠不止這些,但常用的就這幾點。
NERDTree
專案地址
https://github.com/scrooloose/nerdtree
功能
顯示目錄樹
安裝
git clone https://github.com/scrooloose/nerdtree.git ~/.vim/bundle
此時~/.vim/bundle/nerdtree下應該有如下幾個目錄和檔案
autoload
doc
lib
nerdtree_plugin
plugin
README.markdown
syntax
這幾個目錄是vim預設的外掛目錄,如果我們不是通過pathogen載入外掛,就需要在~/.vim目錄下建立對應的這幾個目錄,並將NERDTree對應的檔案拷到相應的目錄,這樣每個目錄下會放置多個外掛的內容,比如~/.vim/doc下就會放置所有外掛的幫組文件,而我們通過pathogen來管理,每個外掛的所有內容都放在同一個目錄中,比如這裡的NERDTree外掛的內容我們下載到了~/.vim/bundle/nerdtree下,直接刪除這個目錄即可刪除外掛,如果後續外掛有更新,在該目錄下通過git命令也可以很容易更新到最新版本。
開啟vim,在命令列模式下輸入:Helptags載入外掛的幫組文件,或者用:helptags help_dir載入指定目錄的幫組文件,其中help_dir是你需要載入的外掛幫組文件所在的目錄,比如這裡是~/.vim/bundle/nerdtree/doc
測試
用vim開啟一個檔案,在命令列模式下輸入:NERDTree,然後回車,視窗左側就出現了vim工作目錄的目錄樹,如下圖所示
將游標置於NERDTree視窗,按’?’可檢視幫助,NERDTree的操作很簡單,通常是將游標置於一個目錄/檔案上,通過一個按鍵來操作,下面列出幾個常用按鍵及其對應的操作
檔案相關操作 o : 在游標所在的上一個視窗開啟檔案,並將游標置於新開啟的視窗 go : 預覽檔案,游標停留在NERDTree視窗中 t : 在新標籤中開啟檔案並激活 gt : 在新標籤開啟檔案,游標留在NERDTree視窗中 i : 水平分割開啟檔案 gi : 水平分割預覽 s : 垂直分割開啟檔案 gs : 垂直分割預覽 目錄樹相關操作 o : 展開/關閉目錄 O : 遞迴展開目錄。慎用,如果目錄層級多,開啟會很慢 x : 關閉父目錄 C : 切換游標所在目錄為根目錄 u : 切換目錄樹的根目錄為上層目錄 U : 切換目錄樹的根目錄為上層目錄,並保持舊的目錄樹的狀態 r : 重新整理當前目錄 R : 重新整理當前根目錄(這個在新加入檔案後會用到) cd : 切換vim工作目錄為游標所在目錄(命令模式下:pwd可檢視當前工作目錄)
為了方便開啟NERDTree,我們可以設定快捷鍵,開啟~/.vimrc,插入如下一行
map <C-n> :NERDTree<CR>
這樣,當開啟vim時,只要輸入ctrl+n即可開啟NERDTree
MiniBufExplorer
專案地址
http://www.vim.org/scripts/script.php?script_id=159
功能
顯示已開啟的buffer
安裝
以6.3.2版本為例,根據專案地址可以找到對應版本的下載連結
mkdir -p ~/.vim/bundle/minibufexplorer/plugin && wget "http://www.vim.org/scripts/download_script.php?src_id=3640" -O ~/.vim/bundle/minibufexplorer/plugin/minibufexpl.vim
測試
用vim開啟一個檔案,此時看不到minibufexplorer視窗,因為預設是隻有一個buffer時不顯示視窗的,在命令列模式下通過:vsp filename
開啟另一個檔案(或者用NERDTree瀏覽開啟其它檔案),看看此時視窗上方是不是出現了MiniBufExplorer的視窗,如下所示
我們先來解釋一下什麼叫buffer,vim為每個開啟的檔案都建立了一個buffer,這個buffer儲存在記憶體中,為了下次開啟檔案時快速載入,比如我們通過NERDTree瀏覽並打開了多個檔案,即便某些檔案你退出了編輯,它的buffer仍舊是存在的,在命令模式下,我們輸入:ls
可以檢視開啟的buffer列表,每一行前面的數字對應buffer的編號,通過輸入:b N
,其中N代表buffer編號,可以開啟對應的buffer。對應上面的截圖,我們打開了兩個檔案,此時minibufexplorer視窗顯示有兩個buffer,即便我們關閉一個檔案,這兩個buffer仍然存在,將游標移到某個buffer的名稱上,回車可開啟對應的buffer,按d
可刪除buffer,具體的操作可以直接閱讀外掛檔案,路徑為~/.vim/bundle/minibufexplorer/plugin/minibufexpl.vim
配置
在~/.vimrc檔案中加入如下命令
let g:miniBufExplMaxSize = 2
該配置含義為minibufexplorer視窗最大高度為2行,預設是沒有上限的,你開啟的buffer足夠多,一會一直增長下去,為了方便閱讀我一般將它設為2,其它配置不怎麼用到,需要用的時候可以參考外掛檔案,並在~/.vimrc中新增配置
ctags
這個並不是外掛,而是可執行程式,是用來對程式碼建索引,方便查詢的,有些Linux版本是自帶ctags的,如果沒有,按如下方式安裝
sudo apt-get install ctags
如果安裝失敗,看是不是因為/usr/bin/ctags檔案已經存在,可以先mv走,然後再執行
建立索引:在你程式碼的根目錄執行如下命令,會生成一個tags檔案,此時在程式碼根目錄下開啟一個檔案(vim預設只加載工作目錄下的tags檔案),將游標置於一個函式或結構體名字上,按ctr+]
即可跳轉到該名稱的定義處,如果出現多個選項,可以輸入編號選擇對應跳轉的地方,按ctr+o
可回到游標之前的位置
ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++
taglist
taglist是vim的一個外掛,可以將程式碼內的函式、變數等按規律列出來,方便查詢
下載地址
http://www.vim.org/scripts/script.php?script_id=273,或者直接按如下方式下載並安裝
cd ~/.vim/bundle && wget "http://www.vim.org/scripts/download_script.php?src_id=19574" -O taglist.zip && unzip taglist.zip -d taglist
這樣就生成了~/.vim/bundle/taglist目錄,該目錄的結構為
taglist
├── doc
│ └── taglist.txt
└── plugin
└── taglist.vim
其中plugin目錄下為外掛檔案,doc目錄下為說明文件。開啟vim,在命令列模式下輸入:helptags ~/.vim/bundle/taglist/doc
可以載入說明文件,然後輸入help taglist.txt
則可以顯示說明文件
配置
開啟~/.vimrc,輸入如下內容
let Tlist_Show_One_File=1 " 只展示一個檔案的taglist let Tlist_Exit_OnlyWindow=1 " 當taglist是最後以個視窗時自動退出 let Tlist_Use_Right_Window=1 " 在右邊顯示taglist視窗 let Tlist_Sort_Type="name" " tag按名字排序
這幾行配置看名字就能知道什麼意思,引號後邊是說明,在vim配置檔案裡,雙引號代表註釋,類似於C語言裡的/
如果開啟過程中出現問題,例如
Taglist: Failed to generate tags for /Users/Zorba/Dropbox/RubymineProjects/rcafe/app/controllers/posts_controller.rb /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ctags: illegal option – -^@usage:
ctags [-BFadtuwvx] [-f tagsfile] file …^@
就要重新安裝一遍ctags