Vim + ctags + taglist + code_complete

來源:互聯網
上載者:User
Vim + ctags + taglist + code_complete另外一篇文章將Vim改造為強大的IDE—Vim整合Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有圖有真相)http://blog.csdn.net/bokee/article/details/6633193http://bbs.chinaunix.net/thread-699109-1-1.html

所謂“工欲善其事,必先利其器”,所謂“磨刀不誤砍柴工“。在linux 下,vim 時一種最常見的編輯器,很多linux的發行版就內建了(不過
Ubuntu目前時需要自己安裝的,預設只帶了vi)。今天搞了半天了Vim,通過幾個外掛程式來武裝我的vim,使其能向傳說中的一樣成為C/C++程式員的利器。 
通過配置和外掛程式,實現的功能有:文法高亮+自動縮排+函數自動補全+變數函數的跟蹤+列出原始碼中的函數變數等 
用到的工具有:Vim+.vimrc設定檔+Ctags+taglist 
使用效果:http://files.myopera.com/mbbill/files/code_complete.gif 
PS:這個效果非常炫的!~ 

vim http://www.vim.org    ubuntu可使用sudo apt-get install vim 

code_complete.vim 外掛程式http://www.vim.org/scripts/script.php?script_id=1764 

ctags 一般安裝完vim後都會有,ubuntu中好像是不支援,需要下載:http://www.vim.org/scripts/script.php?script_id=610 

(ubuntu可直接在軟體管理器搜尋安裝)


taglis 下載:http://www.vim.org/scripts/script.php?script_id=273 

(我上傳的  http://pan.baidu.com/share/link?shareid=349735&uk=2449976461)

一. vim 配置 
1、設定檔的位置 
  在目錄 /etc/ 下面,有個名為vimrc的檔案,這是系統中公用的vim設定檔,對所有使用者都有效。而在每個使用者的主目錄下,都可以自己建立私人的設定檔,命名 為:“.vimrc”。例如,/root目錄下,通常已經存在一個.vimrc檔案。我就在自己的$HOME目錄下建立了了.vimrc檔案來配置 的。(如果設定/etc/vimrc對所有使用者都有效配置,某個userHOME下在.vimrc僅對這個user有效) 
2、設定文法高亮顯示 
  1) 開啟.vimrc,添加以下語句來使得文法高亮顯示: 
  syntax on 
  2) 如果此時文法還是沒有高亮顯示,那麼在/etc目錄下的profile檔案中添加以下語句: 
  export TERM=xterm-color 
3、設定Windows 風格的C/C++自動縮排(添加以下set語句到.vimrc中) 
  1)不討論定位字元為8還是為4較好,這裡設定(軟)定位字元寬度為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 
PS:自動縮排有兩個選項,代碼: 
  set autoindent 與  set cindent 
  autoindent 就是自動縮排的意思,當你在輸入狀態用斷行符號鍵插入一個新行,或者在 normal 狀態用 o 或者 O 插入一個新行時,autoindent 會自動地將當前行的縮排拷貝到新行,也就是"自動對齊”,當然了,如果你在新行沒有輸入任何字元,那麼這個縮排將自動刪除。 
  cindent 就不同了,它會按照 C 語言的文法,自動地調整縮排的長度,比如,當你輸入了半條語句然後斷行符號時,縮排會自動增加一個 TABSTOP 值,當你鍵入了一個右花括弧時,會自動減少一個 TABSTOP 值。 

二. code_complete 配置 
把下載的code_complete.vim拷貝到plugin目錄下,一般都在(我的是)/usr/share/vim/vim72/plugin下 (不同的vim版本vim72可能時其他 ,我的目前時7.2版本) 
在vim中使用<tab>鍵就可以補全函數原型了。具體不全的快速鍵的定義,如果in代表#include " ",見:code_complete.vim檔案中的定義。 

三. 用ctags命令產生tags檔案,ctags -R --c-kinds=+p --fields=+S /usr/include 應該算是建立索引表(預設會在目前的目錄產生tags檔案),然後把產生的tags檔案拷貝到你編程的目錄。 
注意:ctags -R 後面不加上絕對路徑,就時建立目前的目錄的下所有檔案的索引,那麼建立的索引檔案中都是寫的相對路徑,你將tags檔案拷貝到其他目錄去用時,它就會找不到相應的函數/變數等。 
"-R"表示遞迴建立,也就包括原始碼根目錄下的所有子目錄下的來源程式。 
"tags"檔案中包括這些對象的列表: 
  用#define定義的宏 
  枚舉型變數的值 
  函數的定義、原型和聲明 
  名字空間(namespace) 
  類型定義(typedefs) 
  變數(包括定義和聲明) 
  類(class)、結構(struct)、枚舉類型(enum)和聯合(union) 
  類、結構和聯合中成員變數或函數 
  VIM用這個"tags"檔案來定位上面這些做了標記的對象,下面介紹一下定位這些對象的方法: 
  1) 用命令列。在運行vim的時候加上"-t"參數,例如: 
  [/home/admin/src]$ vim -t foo_bar 
  這個命令將開啟定義"foo_bar"(變數或函數或其它 )的檔案,並把游標定位到這一行。 
  2) 在vim編輯器內用":ta"命令,例如: 
  :ta foo_bar 
  3) 最方便的方法是把游標移到變數名或函數名上,然後按下"Ctrl-]"。用"Ctrl-o"退回原來的地方。 
  注意:運行vim的時候,必須在"tags"檔案所在的目錄下運行。否則,運行vim的時候還要用":set tags="命令設定"tags"檔案的路徑,這樣vim才能找到"tags"檔案。 

四. taglist的配置和使用 
下載taglist壓縮包,並解壓,cp plugin/taglist.vim /usr/share/vim/vim72/plugin/ ; cp doc/taglist.txt /usr/share/vim/vim61/doc/ 
啟動vim,用 “:helptags .”來配置好協助檔案;重啟vim,用“:TlistToggle”來開啟和關閉taglist視窗;可以用“:help taglist”來獲得更多協助信 

五.配置ccompelete

autocmd Filetype c set omnifunc=ccomplete#Complete

參考資料: 

http://blog.chinaunix.net/u2/74761/showart_1096872.html 

http://www.linuxsir.org/bbs/showthread.php?p=2095747#post2095747    (vim很強大功能介紹) 

http://linux.chinaunix.net/bbs/thread-1036769-1-1.html 

http://blog.chinaunix.net/u/553/showart_288387.html 

轉自:http://blog.csdn.net/shi_869160/archive/2010/10/07/5925059.aspx

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.