vim + ctags + taglist配置和使用 【及】 一鍵安裝 ctags和cscope的方法 【及】vim語法高亮,自動縮排,python 自動縮排設定
1, vim + ctags + taglist配置和使用
taglist依賴於ctags,所以要先裝ctags,否則taglist裝了也沒法用!
1、首先安裝ctags
首先是ctags的安裝,推薦使用exuberant ctags,我們可以從其官方網站上下載它的原始碼包,進行解壓縮,編譯,安裝即可。
1)ubuntu安裝
sudo apt-get install exuberant-ctags
( 或者下載 手動安裝 download ctags-5.8.tag.gz (地址)
tar xzvf ctags-5.8.tag.gz
cd ctags-5.8
./configure
sudo make
sudo make install
)
至此,ctags的安裝已經完成,可以使用ctags命令來檢測時候完成安裝。
檢測:
在自己的專案資料夾下執行 $ctags -R * (不執行就起不到效果)
注:“-R”表示遞迴建立,也就包括原始碼根目錄(當前目錄)下的所有子目錄。“*”表示所有檔案。這條命令會在當前目錄下產生一個“tags”檔案, 當用戶在當前目錄中執行vi時,會自動載入此tags檔案。
然後就可以入手了。
常用的命令:
熟練的使用ctags僅需記住下面七條命令:(很簡單吧,呵呵)
1. $ ctags –R * ($ 為Linux系統Shell提示符)
2. $ vi –t tag (請把tag替換為您欲查詢的變數或函式名)
3. :ts (ts 助記字:tags list, “:”開頭的命令為VI中命令列模式命令)
4. :tp (tp 助記字:tags preview)---此命令不常用,可以不用記
5. :tn (tn 助記字:tags next) ---此命令不常用,可以不用記
6. Ctrl + ]
7. Ctrl + T
2、安裝taglist
下面我們來進行taglist的安裝,同ctags的安裝一樣這裡我們也是去其官方網站下載解壓其原始碼包。
解壓檔案
# unzip -d taglist taglist_45.zip // 解壓到 taglist
也可以這樣 配置
$cd taglist/
$cp doc/taglist.txt /usr/share/vim/vim72/doc/
$cp plugin/taglist.vim /usr/share/vim/vim72/plugin/
基本上配置完成
啟動vim,用 “:helptags .”來配置好幫助檔案
重啟vim,用“:TlistToggle”來開啟和關閉taglist視窗。
可以用“:help taglist”來獲得更多幫助信
若要預設開啟taglist,_vimrc中加入
let Tlist_Auto_Open=1
set tags=tags;
set autochdir;
注意第一個命令裡的分號是必不可少的。這個命令讓vim首先在當前目錄裡尋找tags檔案,如果沒有找到tags檔案,或者沒有找到對應的目標,就到父目 錄中查詢,一直向上遞迴。因為tags檔案中記錄的路徑總是相對於tags檔案所在的路徑,所以要使用第二個設定項來改變vim的當前目錄。
完成了taglist和ctags的安裝,但是這時ctags和taglist還沒有聯絡起來。為此,我們需要修改~/.vim/plugin/taglist.vim檔案,找到if !exitsts(loaded_taglist)這一行,並在其前面新增let Tlist_Ctags_Cmd="/usr/local/bin/ctags" ps:在這裡需要注意的是我們在設定直線需要察看我們ctags可執行可執行路徑到底是在哪裡,我們可以進入到上述目錄,一直找到具體的可執行的檔案ctags,並將其路徑賦給Tlist_Ctags_Cmd(例如我的路徑是/usr/local/bin/ctags/ctags) vim+taglist+ctags閱讀程式碼 為了使用vim+taglist+ctags來閱讀程式碼,我們首先必須生成函式和變數的符號資訊。這一步我們使用ctags完成。 例如我們使用我們剛才下載的ctags的原始碼包為例。 //生成tag 執行 ctags -R *(-R遞迴作用) //檢查是否生成了tags ls -l tags 生成tag以後我麼就可以進行察看了,具體步驟見如下截圖
vim輸入:TlistToggle來開啟側面視窗 (或者直接:Tlist、TlistOpen也可以)
使用ctr 和兩次w在側視窗和主視窗之間進行切換
移動到土體的函式後,按enter鍵察看具體函式。(可以利用ctags的特性在滑鼠指定處比如"apue.h",Nomal 輸入 gf,轉到標頭檔案"apue.h")
有時我們想察看的函式在其他程式碼檔案中定義,這是我們只要將游標定位到想察看的函式上,然後按ctr+]鍵就可以進行察看了,按ctr+O可以跳回到原始檔中。
第一步要達到效果是不是很麻煩,下面介紹一種簡單的方法2, 一鍵安裝 ctags和cscope的方法
用vim的外掛搭建一個類似sourceinsight的vi,同時加了一些vim及指令碼,最近看到很多人想要有sourceinsight功能的vim,由於整個配置還是有點麻煩,於是將配置的vim發上來,只需一條命令,就可安裝完ctagslist,cscope,fielexporeer等外掛,達到sourceinsight的效果。
安裝過程:
到這裡 下載附件: vim_install.tar.gz,然後解壓,然後切到解壓後的資料夾,
執行sudo ./install即可(注意安裝前備份好自己的vimrc 防止之前你的某些設定丟失,便於查詢)。
然後執行sudo apt-get install vim
或者這樣安裝:
#Clone repository:
git clone https://github.com/ustcdane/vim_file_info.git
#install
cd vim_install
sudo ./install (注意會把之前配置的.vimrc檔案覆蓋,使用此命令前對自己的.vimrc進行備份)
可能會出現錯誤:
"Taglist: Exuberant ctags (http://ctags.sf.net) not found in PATH.
Plugin is not loaded."
沒有關聯Ctags和Taglist
在~/.vimrc中加入 : let Tlist_Ctags_Cmd='/usr/bin/ctags'
其實我已經在 install 中加入了,如果還是出現錯誤,則找到你的可執行程式ctags 所在處手動的在~/.vimrc中加入let Tlist_Ctags_Cmd='你的ctags路徑'
使用指南:
當我們需要閱讀程式碼時,必須先生成tags檔案和cscope.out檔案,這個可以通過已安裝程式中的指令碼自動生成
比如你要閱讀source資料夾下的程式碼就使用cs source
當source下有檔案更新了,你可以使用 cs source -u來更新
常用命令:
進入vim後
wm開啟ide介面,再次wm就關閉了
ctrl+w在各個視窗切換
ctrl+h切換到左邊的視窗
ctrl+j切換到下面的視窗
ctrl+l切換到右邊的視窗
ctrl+k切換到上面的視窗
ctrl+]函式跟蹤
快捷鍵 cs f s/g/....
s: 查詢C語言符號,即查詢函式名、巨集、列舉值等出現的地方
g: 查詢函式、巨集、列舉等定義的位置,類似ctags所提供的功能
d: 查詢本函式呼叫的函式
c: 查詢呼叫本函式的函式
t: 查詢指定的字串
e: 查詢egrep模式,相當於egrep功能,但查詢速度快多了
f: 查詢並開啟檔案,類似vim的find功能
i: 查詢包含本檔案的文
當然在底行模式下介鍵入 help 會彈出 vim的幫助。
使用cscope查詢do_fork函式的定義:
在vim命令列下執行:
:cs f g do_fork
就可以檢視do_fork的全域性定義了。
cscope常用快捷鍵:
先按 ctrl+\ 然後 再按以下鍵:
ctrl+]:在函式呼叫的地方跳轉到函式定義的地方
ctrl+t:返回上一個查詢的地方
這個方法是從網上學到的,並作了部分修改3, 設定vim語法高亮顯示和自動縮排
1、配置檔案的位置在目錄 /etc/vim 下面,有個名為vimrc的檔案,這是系統中公共的vim配置檔案,對所有使用者都有效。而在每個使用者的主目錄下,都可以自己建立私有的配置檔案,命名為:“.vimrc” , (如果你使用第二步中的一鍵安裝 ctags和cscope的方法建議 在自己的家目錄下的.vimrc 作相應修改) 。例如,/root目錄下,通常已經存在一個.vimrc檔案。
2、設定語法高亮顯示
1) 開啟vimrc,新增以下語句來使得語法高亮顯示:
syntax on
2) 如果此時語法還是沒有高亮顯示,那麼在/etc目錄下的profile檔案中新增以下語句:
export TERM=xterm-color
3、設定Windows風格的C/C++自動縮排(新增以下set語句到vimrc中)
1)設定(軟)製表符寬度為4:
set tabstop=4
set softtabstop=4
2)設定縮排的空格數為4
set shiftwidth=4
3)設定自動縮排:即每行的縮排值與上一行相等;使用 noautoindent 取消設定:
set autoindent
4)設定使用 C/C++ 語言的自動縮排方式:
set cindent
5)設定C/C++語言的具體縮排方式(以我的windows風格為例):
set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s
6)如果想在左側顯示文字的行號,可以用以下語句:
set nu
7)最後,如果沒有下列語句,就加上吧:
if &term=="xterm"
set t_Co=8
set t_Sb=^[[4%dm
set t_Sf=^[[3%dm
endif
總結, 需要新增的內容:
A,語法高亮在/etc目錄下的profile檔案中新增以下語句:
export TERM=xterm-color
B,其它 在 /etc/vim/vimrc的 新增:syntax on set nu set tabstop=4 set softtabstop=4 set shiftwidth=4 set cindent set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s if &term=="xterm" set t_Co=8 set t_Sb=^[[4%dm set t_Sf=^[[3%dm endif hi Comment ctermfg=6
Other: vim python 的自動縮排設定方法。
縮排設定最常用的是:
:filetype indent on 它將開啟針對檔案具體型別的縮排
變數名 縮寫 含義 tabstop=X ts 編輯時一個TAB字元佔多少個空格的位置。 shiftwidth=X sw 使用每層縮排的空格數。 (no)expandtab (no)et 是否將輸入的TAB自動展開成空格。開啟後要輸入TAB,需要Ctrl-V<TAB> softtabstop=X sts 方便在開啟了et後使用退格(backspace)鍵,每次退格將刪除X個空格 (no)smarttab (no)sta 開啟時,在行首按TAB將加入sw個空格,否則加入ts個空格。
根據上面的準則,我們可以將下述設定加入到~/.vimrc中:filetype indent on autocmd FileType python setlocal et sta sw=4 sts=4
第一行開啟自動的縮排檢測。最後一行則根據Python語言的建議(將tab展成四個空格)進行了專門設定。
好了,你可試下了~~