1. 程式人生 > >Centos將vim設定成為C++編輯器

Centos將vim設定成為C++編輯器

第一步先安裝git sudo yum install git
第二步安裝一個外掛管理器的外掛 pathogen
mkdir -p ~/.vim/autoload ~/.vim/bundle && curl -LSso ~/.vim/autoload/pathogen.vim https://tpo. pe/pathogen.vim

然後開啟 vim ~/.vimrc 輸入:
execute pathogen#infect()
syntax on
filetype plugin indent on
解釋:可見~/.vim目錄下是有兩個目錄,其中autoload放的是pathogen外掛,所謂的外掛其實就是一個指令碼,當vim啟動時,它會自動載入~/.vim/autoload目錄下的指令碼,由於你~/.vimrc裡配置了execute pathogen#infect(),所以它會去自動的執行腳本里這個函式

第三步安裝NERDTree:
git clone https://github.com/scrooloose/nerdtree.git ~/.vim/bundle/nerdtree
將NERDTree下載到 ~/.vim/bundle/nerdtree路徑下

用vim開啟一個檔案在命令列模式輸入 :NERDTree 就會看到左側的工作目錄樹即當前資料夾下有多少東西。
為了方便開啟NERDTree,我們可以設定快捷鍵,開啟~/.vimrc,插入如下一行
map :NERDTree

NERDTree的操作很簡單,通常是將游標置於一個目錄/檔案上,通過一個按鍵來操作
檔案相關操作
o : 在游標所在的上一個視窗開啟檔案,並將游標置於新開啟的視窗
go : 預覽檔案,游標停留在NERDTree視窗中
t : 在新標籤中開啟檔案並激活
gt : 在新標籤開啟檔案,游標留在NERDTree視窗中
i : 水平分割開啟檔案
gi : 水平分割預覽
s : 垂直分割開啟檔案
gs : 垂直分割預覽

目錄樹相關操作
o : 展開/關閉目錄
O : 遞迴展開目錄。慎用,如果目錄層級多,開啟會很慢
x : 關閉父目錄
C : 切換游標所在目錄為根目錄
u : 切換目錄樹的根目錄為上層目錄
U : 切換目錄樹的根目錄為上層目錄,並保持舊的目錄樹的狀態
r : 重新整理當前目錄
R : 重新整理當前根目錄(這個在新加入檔案後會用到)
cd : 切換vim工作目錄為游標所在目錄(命令模式下:pwd可檢視當前工作目錄)
第四步安裝MinibufExplore: 下面是一行的命令
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
配置
在~/.vimrc檔案中加入如下命令
let g:miniBufExplMaxSize = 2

第五步安裝ctags:
sudo yum install ctags 一般都會自帶一個

建立索引:在你程式碼的根目錄執行如下命令,會生成一個tags檔案 很重要
ctags -R –sort=yes –c++-kinds=+p –fields=+iaS –extra=+q –language-force=C++

第六步安裝taglist
taglist是vim的一個外掛 可以將程式碼內的函式、變數等按規律列出來,方便查詢
cd ~/.vim/bundle && wget “http://www.vim.org/scripts/download_script.php?src_id=19574” -O taglist.zip && unzip taglist.zip -d taglist

配置
開啟~/.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按名字排序
開啟一個檔案,在命令列模式下輸入:TlistToggle即可顯示taglist視窗,配合NERDTree一起

第七步
OmniCppComplete
這是一個對C++進行語法補全的外掛,可以對函式、名稱空間、類成員等進行補全,使用起來和絕大多數IDE差不多,不一樣的是IDE為你做了很多你不知道的事情,而omni補全需要依賴tags檔案,需要你用ctags命令自己生成
cd ~/.vim/bundle && wget “http://www.vim.org/scripts/download_script.php?src_id=7722” -O omnicppcomplete.zip && unzip omnicppcomplete.zip -d omnicppcomplete

配置
開啟~/.vimrc檔案,輸入
filetype plugin indent on
set completeopt=longest,menu
let OmniCpp_NamespaceSearch = 2 ” search namespaces in the current buffer and in included files
let OmniCpp_ShowPrototypeInAbbr = 1 ” 顯示函式引數列表
let OmniCpp_MayCompleteScope = 1 ” 輸入 :: 後自動補全
let OmniCpp_DefaultNamespaces = [“std”, “_GLIBCXX_STD”]

使用時先生成tags檔案及使用:
ctags -R –sort=yes –c++-kinds=+p –fields=+iaS –extra=+q –language-force=C++

這樣就將STL的原始碼下載到了~/.vim/tags/cpp_src目錄下,我們在該目錄下執行ctags命令
ctags -R –sort=yes –c++-kinds=+p –fields=+iaS –extra=+q –language-force=C++

開啟~/.vimrc進行如下設定
set tags+=~/.vim/tags/cpp_src/tags

由於TAB鍵被對映成了補全快捷鍵,也就無法通過TAB鍵直接輸入製表符,這時如果想要輸入製表符可以通過ctr+v TAB即可,即先輸入ctr+v再輸入TAB鍵,在vim下通過ctl+v可以輸入很多不可見字元,比如試試ctr+v ctr+w

裝了這麼多外掛,在配置檔案~/.vimrc裡也增添了不少內容,最後你的配置檔案至少應該包含以下內容
set tags+=~/.vim/tags/cpp_src/tags ” 設定tags搜尋路徑
syntax on
filetype plugin indent on

map :NERDTree

” pathongen
execute pathogen#infect()

” taglist
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
let Tlist_Use_Right_Window=1
let Tlist_Sort_Type=”name”

” omnicppcomplete
set completeopt=longest,menu
let OmniCpp_NamespaceSearch = 2 ” search namespaces in the current buffer and in included files
let OmniCpp_ShowPrototypeInAbbr = 1 ” 顯示函式引數列表
let OmniCpp_MayCompleteScope = 1 ” 輸入 :: 後自動補全
let OmniCpp_DefaultNamespaces = [“std”, “_GLIBCXX_STD”]