Vim 打造Linux C C 程式設計師的編輯器

2021-09-30 06:23:58 字數 2630 閱讀 1546

所謂「工欲善其事,必先利其器」,所謂「磨刀不誤砍柴工「。在linux下,vim時一種最常見的編輯器,很多linux的發行版就自帶了(不過 ubuntu目前時需要自己安裝的,預設只帶了vi)。今天搞了半天了vim,通過幾個外掛程式來武裝我的vim,使其能向傳說中的一樣成為c/c++程式設計師的利器。

通過配置和外掛程式,實現的功能有:語法高亮+自動縮排+函式自動補全+變數函式的跟蹤+列出源**中的函式變數等用到的工具有:vim+.vimrc配置檔案+ctags+taglist

使用效果:

code_complete.vim 外掛程式

一. 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

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 配置

在vim中使用鍵就可以補全函式原型了。具體不全的快捷鍵的定義,如果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"(變數或函式或其它)的檔案,並把游標定位到這一行。

:ta foo_bar

3) 最方便的方法是把游標移到變數名或函式名上,然後按下"ctrl-]"。用"ctrl-o"退回原來的地方。

注意:執行vim的時候,必須在"tags"檔案所在的目錄下執行。否則,執行vim的時候還要用":set tags="命令設定"tags"檔案的路徑,這樣vim才能找到"tags"檔案。

四. taglist的配置和使用

啟動vim,用 「:helptags .」來配置好幫助檔案;重啟vim,用「:tlisttoggle」來開啟和關閉taglist視窗;可以用「:help taglist」來獲得更多幫助信

Vim 打造Linux C C 程式設計師的編輯器

所謂 工欲善其事,必先利其器 所謂 磨刀不誤砍柴工 在linux下,vim時一種最常見的編輯器,很多linux的發行版就自帶了 不過 ubuntu目前時需要自己安裝的,預設只帶了vi 今天搞了半天了vim,通過幾個外掛程式來武裝我的vim,使其能向傳說中的一樣成為c c 程式設計師的利器。通過配置和...

Vim 打造Linux C C 程式設計師的編輯器

所謂 工欲善其事,必先利其器 所謂 磨刀不誤砍柴工 在linux下,vim時一種最常見的編輯器,很多linux的發行版就自帶了 不過 ubuntu目前時需要自己安裝的,預設只帶了vi 今天搞了半天了vim,通過幾個外掛程式來武裝我的vim,使其能向傳說中的一樣成為c c 程式設計師的利器。通過配置和...

vim與程式設計師

所有的 unix like 系統都會內建 vi 文書編輯器,其他的文書編輯器則不一定會存在。但是目前我們使用比較多的是 vim 編輯器。vim 具有程式編輯的能力,可以主動的以字型顏色辨別語法的正確性,方便程式設計。vim是從 vi 發展出來的乙個文字編輯器。補完 編譯及錯誤跳轉等方便程式設計的功能...