放棄IDE,用VIM進行c/c++程式開發

來源:互聯網
上載者:User

老廖曾經在PHPER雜誌上發表過一篇文章叫做用VIM做PHP開發環境,在裡面詳細介紹了用VIM做php開發需要做的準備,這篇文章就結合一些資料和我自己的一些經驗來介紹下用VIM做C/C++開發需要做的事情,相對來說要比做php開發方便些。

前提條件是當然是你已經下載了VIM,如果沒有的話請先到官方網站下載最新版本,地址是:http://www.vim.org/download.php

協助文檔::http://vimcdoc.sourceforge.net/

首先從視覺方面:

第一個要做的是縮排,修改你的VIM設定檔_vimrc,在最後加入set cindent,這樣就設定了c風格的縮排,在這裡縮排的大小是shiftwidth的值。

第二個要做的是文法高亮,這個是必須的,在中_vimrc加入syntax enable。

第三個要做的字型的設定,設定一個舒服的字型可以讓你編程的時候舒服好多,用editplus的時候我就用的Consolas,在vim中我還是用的這種字型,在_vimrc中加入

if has(”gui_running”)
set guifont=Consolas:h9
endif

表示運行介面vim的時候就用這種字型。

第四,設定色彩配置,可以到點擊這兒下載,然後放到$VIM"vimfiles"colors這個目錄下,然後在中加入如下配置

if has(”gui_running”)
set guifont=Consolas:h9
” set color schema
colorscheme colorscheme_name
endif

colorscheme_name為你需要設定的色彩配置的名稱。

接下來是在運行程式中用到的:

第一,使用ctag

VIM中已經帶了Ctags這個程式。儘管ctags也可以支援其它編輯器,但是它正式支援的只有VIM。Ctags可以協助程式員很容易地瀏覽原始碼。用下面的命令可以在原始碼的根目錄下建立“tags”檔案:

[/home/brimmer/src]$ ctags -R

“-R”表示遞迴建立,也就包括原始碼根目錄下的所有子目錄下的來源程式。“tags”檔案中包括這些對象的列表:

l        用#define定義的宏

l        枚舉型變數的值

l        函數的定義、原型和聲明

l        名字空間(namespace)

l        類型定義(typedefs)

l        變數(包括定義和聲明)

l        類(class)、結構(struct)、枚舉類型(enum)和聯合(union)

l        類、結構和聯合中成員變數或函數

VIM用這個“tags”檔案來定位上面這些做了標記的對象,下面介紹一下定位這些對象的方法:

1)        用命令列。在運行vim的時候加上“-t”參數,例如:

[/home/brimmer/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這個外掛程式,這個外掛程式可以在右側顯示函數,變數等的列表

第二,改正程式中的錯誤

在VIM編輯器的環境下用“:make”(make工具的使用已經在我昨天的文章中 提到的雲風的幾篇文章中詳細介紹到)就可以編譯器,當然其前提是在目前的目錄下有Makefile檔案。運行完“:make”之後,如果程式中有錯誤,就 會顯示出來。這時候,游標會自動指向第一個出現錯誤的地方,而且你還可以看到錯誤的提示。然後,你就可以改正錯誤,而不用手工找到出錯的那一行。記住下面 幾個有用的命令:

l        “:cl”列出錯誤

l        “:cn”讓游標指向下一個錯誤

l        “:cp”讓游標指向上一個錯誤

l        “:cnew”從頭開始

你甚至可以讓VIM識別出其它編譯器而不是gcc的錯誤提示。這對一些開發嵌入式系統的程式員這很有用,因為他們很可能用的不是gcc而是其它編譯器。通過設定“errorformat”的值,可以讓VIM識別出編譯器的出錯提示。因為不同的編譯器的出錯提示是不同的,所以如果用的不是gcc就要重新設定。

“errorformat”的值是一個字串,它的格式和C語言的scanf的字串格式相識。

gcc的“errorformat”的值為:%f:%l:"%m。其中“%f”表示檔案名稱,“%l”表示行號,“%m”表示出錯資訊。

用“:h errorformat”查看詳細的協助資訊。

用“:h quickfix”、“:h make”、“:h makeprg”、“:h errorfile”查看其它的資訊。

第三,使用快速鍵

下面的這些快速鍵對程式員很有協助:
在函數中移動游標

[[  轉到上一個位於第一列的“{”

]]  轉到下一個位於第一列的“{”

{   轉到上一個空行

}   轉到下一個空行

gd  轉到當前游標所指的局部變數的定義

*   轉到當前游標所指的單詞下一次出現的地方

#   轉到當前游標所指的單詞上一次出現的地方
括弧的匹配

%   用來進行小括弧、中括弧和大括弧的匹配。這要看當前游標指向的是什麼符號了。

結語:

vim一直是一些牛人推薦的工具並一直存在著是有著道理的,她大大提高了我們的工作效率,如果你打算長期變成的話,花一個星期的時間來熟悉vim的使用時很有必要的!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.