• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            小山日志
            讀書,學(xué)習(xí)與思考.
            posts - 9,comments - 14,trackbacks - 0
            Vi是Unix下最常用的文本編輯器。VIM(Vi IMproved)則是它的增強版。有人常常拿VIM和emacs比較,VIM盡管不象emacs那樣有那么多的功能,但是比emacs更方便、好用。用過emacs的人肯定會為emacs的一些快捷鍵感到煩惱,有時候用真希望自己有八只手。VIM的學(xué)習(xí)曲線也不象emacs那么長,只要看看VIM自帶的 vitutor,大約只要20分鐘就能掌握VIM的用法。對于Unix下的C/C++的程序員,我推薦你們使用VIM+Ctags的組合來寫程序。其中原因聽我慢慢道來。(下面對VIM的介紹主要是針對5.6以后的版本)
            VIM支持語法制導(dǎo)和自動縮進

            VIM會根據(jù)文件的后綴名,如:*.c、*.cpp、*.cc,等,自動設(shè)置語法制導(dǎo)(Syntax Highlighting)。C/C++中的一些保留字,如:if、for、include,等等,就會有不同的顏色,這樣就會減少程序員犯錯的可能,閱讀程序的時候相對來說也輕松很多。用下面這些命令在VIM中查看有關(guān)語法制導(dǎo)的幫助:“:h syntax”、“:h syn-qstart”、“:h syntax-printing”。

            VIM也支持根據(jù)GNU的風(fēng)格自動縮進,這樣程序員編寫出來的代碼就更易閱讀,而且也有利于培養(yǎng)好的編程風(fēng)格。用下面這些命令在VIM中查看有關(guān)自動縮進的幫助:“:h cindent”、“:h cinoptions”、“:h cinoptions-values”、“:h cinkeys”、“:h cinwords”。
            使用Ctags

            VIM中已經(jīng)帶了Ctags這個程序。盡管ctags也可以支持其它編輯器,但是它正式支持的只有VIM。Ctags可以幫助程序員很容易地瀏覽源代碼。用下面的命令可以在源代碼的根目錄下創(chuàng)建“tags”文件:

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

            “-R”表示遞歸創(chuàng)建,也就包括源代碼根目錄下的所有子目錄下的源程序。“tags”文件中包括這些對象的列表:

            l 用#define定義的宏

            l 枚舉型變量的值

            l 函數(shù)的定義、原型和聲明

            l 名字空間(namespace)

            l 類型定義(typedefs)

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

            l 類(class)、結(jié)構(gòu)(struct)、枚舉類型(enum)和聯(lián)合(union)

            l 類、結(jié)構(gòu)和聯(lián)合中成員變量或函數(shù)

            VIM用這個“tags”文件來定位上面這些做了標(biāo)記的對象,下面介紹一下定位這些對象的方法:

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

            [/home/brimmer/src]$ vim -t foo_bar

            這個命令將打開定義“foo_bar”(變量或函數(shù)或其它)的文件,并把光標(biāo)定位到這一行。

            2) 在vim編輯器內(nèi)用“:ta”命令,例如:

            :ta foo_bar

            3) 最方便的方法是把光標(biāo)移到變量名或函數(shù)名上,然后按下“Ctrl-]”。用“Ctrl-o”退回原來的地方。

            注意:運行vim的時候,必須在“tags”文件所在的目錄下運行。否則,運行vim的時候還要用“:set tags=”命令設(shè)定“tags”文件的路徑,這樣vim才能找到“tags”文件。
            快速改正錯誤

            在VIM編輯器的環(huán)境下用“:make”就可以編譯程序,當(dāng)然其前提是在當(dāng)前目錄下有Makefile文件。運行完“:make”之后,如果程序中有錯誤,就會顯示出來。這時候,光標(biāo)會自動指向第一個出現(xiàn)錯誤的地方,而且你還可以看到錯誤的提示。然后,你就可以改正錯誤,而不用手工找到出錯的那一行。記住下面幾個有用的命令:

            l “:cl”列出錯誤

            l “:cn”讓光標(biāo)指向下一個錯誤

            l “:cp”讓光標(biāo)指向上一個錯誤

            l “:cnew”從頭開始

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

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

            gcc的“errorformat”的值為:%f:%l:\%m。其中“%f”表示文件名,“%l”表示行號,“%m”表示出錯信息。

            用“:h errorformat”查看詳細(xì)的幫助信息。

            用“:h quickfix”、“:h make”、“:h makeprg”、“:h errorfile”查看其它的信息。
            有用的快捷鍵

            下面的這些快捷鍵對程序員很有幫助:
            在函數(shù)中移動光標(biāo)

            [[ 轉(zhuǎn)到上一個位于第一列的“{”

            ]] 轉(zhuǎn)到下一個位于第一列的“{”

            { 轉(zhuǎn)到上一個空行

            } 轉(zhuǎn)到下一個空行

            gd 轉(zhuǎn)到當(dāng)前光標(biāo)所指的局部變量的定義

            * 轉(zhuǎn)到當(dāng)前光標(biāo)所指的單詞下一次出現(xiàn)的地方

            # 轉(zhuǎn)到當(dāng)前光標(biāo)所指的單詞上一次出現(xiàn)的地方
            括號的匹配

            % 用來進行小括號、中括號和大括號的匹配。這要看當(dāng)前光標(biāo)指向的是什么符號了。
            其它

            VIM的配置文件是“.vimrc”,用這個文件可以配置VIM。VIM的圖形界面的版本叫g(shù)vim。VIM也有用于Windows平臺的版本。
            VIM的資源

            VIM的主頁:http://www.vim.org/。
            版權(quán)說明

            這篇文章的版權(quán)屬于作者brimmer( brimmer@linuxaid.com.cn )和www.linuxaid.com.cn 。如果要轉(zhuǎn)載請加上版權(quán)提示。

            Brimmer的主頁:www.linuxaid.com.cn/engineer/brimmer 。HTML格式和Word格式的文檔可以在主頁上找到。
            posted on 2006-09-02 11:47 小山日志 閱讀(248) 評論(0)  編輯 收藏 引用 所屬分類: 轉(zhuǎn)貼

            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            久久婷婷国产剧情内射白浆| 狠狠色丁香婷综合久久| 深夜久久AAAAA级毛片免费看| 狠狠色丁香久久婷婷综合蜜芽五月| 亚洲AV成人无码久久精品老人| 久久久无码精品亚洲日韩按摩| 日本免费一区二区久久人人澡| 亚洲国产综合久久天堂 | 中文字幕无码久久人妻| 日日躁夜夜躁狠狠久久AV| 久久久久亚洲精品天堂久久久久久| 亚洲中文久久精品无码ww16| 亚洲一本综合久久| 久久精品九九亚洲精品| 色妞色综合久久夜夜| 精品国产91久久久久久久a| 久久久久亚洲av无码专区导航| 亚洲国产精品成人久久蜜臀| 狠狠色丁香婷婷综合久久来来去| 国产精品久久久久jk制服| 久久99热这里只频精品6| 久久99精品久久久久久9蜜桃| 久久精品无码专区免费青青| 亚洲国产天堂久久久久久| 久久久久久青草大香综合精品| 丁香五月网久久综合| 精品国产一区二区三区久久久狼| 中文字幕日本人妻久久久免费| 亚洲婷婷国产精品电影人久久| 久久九九久精品国产免费直播| 久久综合中文字幕| 91秦先生久久久久久久| 亚洲精品高清久久| 久久精品成人| 亚洲人成网站999久久久综合 | 久久精品亚洲AV久久久无码| 香蕉久久夜色精品国产2020 | 国产精品久久久99| 国产综合成人久久大片91| 久久久久国产日韩精品网站| 久久久久亚洲精品中文字幕|