1. 程式人生 > >vim + ctags + taglist配置和使用 【及】 一鍵安裝 ctags和cscope的方法 【及】vim語法高亮,自動縮排,python 自動縮排設定

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

   我們首先在家目錄下建立.vim檔案(mkdir .vim)   以便於存放vim的外掛。 然後把我們下載到的taglist原始碼包進行解壓,把其中的doc和plugins目錄拷貝到.vim資料夾下。 進入到vim在命令模式下輸入helptaglist~/.vim/doc即完成了taglist的安裝。在vim中輸入Tlist,如果出現如下畫面則證明安裝成功。


也可以這樣 配置
$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展成四個空格)進行了專門設定。
好了,你可試下了~~