2010年11月20日 星期六

Vim Color Scheme 2

                    Vim 用戶手冊 - Bram Moolenaar
                (譯者:Nek_in http://vimcdoc.sf.net)

                          使用語法高亮


黑白的文字讓人厭倦了,增加一些色彩能為你的文件帶來生氣。這不但看起來漂亮,
還能夠提高你的工作效率。本章介紹如何使用不同顏色顯示不同文本並把它打印出來。

*06.1* 功能激活

一切從一個簡單的命令開始:

        :syntax enable

大多數情況下,這會讓你的文件帶上顏色。Vim 會自動檢測文件的類型,並調用合適的語
法高亮。一下子註釋變成藍色,關鍵字變成褐色,而字符串變成紅色了。這使你可以很容
易瀏覽整個文檔。很快你就會發現,黑白的文本真的會降低你的效率!

如果你希望總能看到語法高亮,把 "syntax enable" 命令加入到 |vimrc| 文件中。

如果你想語法高亮只在支持色彩的終端中生效,你可以在 |vimrc| 文件中這樣寫:

        if &t_Co > 1
          syntax enable
        endif

如果你只想在 GUI 版本中有效,可以把 ":syntax enable" 放入你的 |gvimrc| 文件。


*06.2* 顏色顯示不出來或者顯示出錯誤的顏色怎麼辦?

有很多因素會讓你看不到顏色:

- 你的終端不支持彩色。
        這種情況下,Vim 會用粗體,斜體和下劃線區分不同文字,但這不好看。你可能
        會希望找一個支持彩色的終端。對於 Unix,我推薦 XFree86 項目的 xterm:
        |xfree-xterm|。

- 你的終端其實支持顏色,可是 Vim 不知道。
        確保你的 $TERM 設置正確。例如,當你使用一個支持彩色的 xterm 終端:

                setenv TERM xterm-color

        或者 (基於你用的控制台終端)

                TERM=xterm-color; export TREM

        終端名必須與你使用的終端一致。如果這還是不行,參考一下 |xterm-color|,
        那裡介紹了一些使 Vim 顯示彩色的方法 (不僅是 xterm)。

- 文件類型無法識別。
        Vim 不可能識別所有文件,而且有時很難說一個文件是什麼類型的。試一下這個
        命令:

                :set filetype

        如果結果是 "filetype=",那麼問題就是出在文件類型上了。你可以手工指定文
        件類型:

                :set filetype=fortran

        要知道哪些類型是有效的,查看一下 $VIMRUNTIME/syntax 目錄。對於 GUI 版
        本,你還可以使用 Syntax 菜單。設置文件類型也可以通過 |modeline|,這種
        方式使得該文件每次被編輯時都被高亮。例如,下面這行可用於 Makefile (把
        它放在接近文件首和文件末的地方)

                # vim: syntax=make

        你可能知道怎麼檢測自己的文件類型,通常的方法是檢查文件的擴展名 (就是點
        後面的內容)。|new-filetype| 說明如何告知 Vim 進行那種文件類型的檢查。

- 你的文件類型沒有語法高亮定義。
        你可以找一個相似的文件類型並人工設置為那種類型。如果覺得不好,你可以自
        己寫一個,參見 |mysyntaxfile|。


或者顏色是錯的:

- 彩色的文字難以辨認。
        Vim 自動猜測你使用的背景色。如果是黑的 (或者其它深色的色彩),它會用淺
        色作為前景色。如果是白的 (或者其它淺色),它會使用深色作為前景色。如果
        Vim 猜錯了,文字就很難認了。要解決這個問題,設置一下 'background' 選
        項。對於深色:

                :set background=dark

        而對於淺色:

                :set background=light

       這兩個命令必須在 ":syntax enable" 命令前調用,否則不起作用。如果要在這
       之後設置背景,可以再調用一下 ":syntax reset" 使得 Vim 重新進行缺省顏色
       的設置。

- 在自下往上滾屏的過程中顏色顯示不對。
        Vim 在分析文本的時候不對整個文件進行處理,它只分析你要顯示的部分。這
        樣能省不少時間,但也會因此帶來錯誤。一個簡單的修正方法是敲 CTRL-L。
        或者往回滾動一下再回來。要徹底解決這個問題,請參見 |:syn-sync|。有些
        語法定義文件有辦法自己找到前面的內容,這可以參見相應的語法定義文件。
        例如,|tex.vim| 中可以查到 Tex 語法定義。


*06.3* 使用不同顏色 *:syn-default-override*

如果你不喜歡默認的顏色方案,你可以選另一個色彩方案。在 GUI 版本中可以使用
Edit/Color 菜單。你也可以使用這個命令:

        :colorscheme evening

"evening" 是色彩方案的名稱。還有幾種備選方案可以試一下。在 $VIMRUNTIME/colors
中可以找到這些方案。

等你確定了一種喜歡的色彩方案,可以把 ":colorscheme" 命令加到你的 |vimrc| 文件
中。

你可以自己編寫色彩方案,方法如下:

1. 選擇一種接近你理想的色彩方案。把這個文件拷貝到你自己的 Vim 目錄中。在
Unix 上,可以這樣:

        !mkdir ~/.vim/colors
       !cp $VIMRUNTIME/colors/morning.vim ~/.vim/colors/mine.vim

   在 Vim 中完成的好處是可以利用 $VIMRUNTIME 變量。

2. 編輯這個色彩方案,常用的有下面的這些條目:

        term            黑白終端的屬性
        cterm           彩色終端的屬性
        ctermfg         彩色終端的前景色
        ctermbg         彩色終端的背景色
        gui             GUI 版本屬性
        guifg           GUI 版本的前景色
        guibg           GUI 版本的背景色

   例如,要用綠色顯示註釋:

        :highlight Comment ctermfg=green guifg=green

   屬性是 "bold" (粗體) 和 "underline" (下劃線) 可以用於 "cterm" 和 "gui"。如
   果你兩個都想用,可以用 "bond,underline"。詳細信息請參考 |:highlight| 命令。

3. 告訴 Vim 總使用你這個色彩方案。把如下語句加入你的 |vimrc| 中:

        colorscheme mine

如果你要測試一下常用的色彩組合,用如下命令:

        :runtime syntax/colortest.vim

這樣你會看到不同的顏色組合。你可以很容易的看到哪一種可讀性好而且漂亮。

沒有留言: