*Constant o 定数 String o 文字列定数: "これは文字列です" Character o 文字定数: 'c', '\n' Number o 数値定数: 234, 0xff Boolean o ブール値の定数: TRUE, false Float o 不動小数点数の定数: 2.3e10
*Identifier o 変数名 Function o 関数名(クラスメソッドを含む)
*Statement o 命令文 Conditional o if, then, else, endif, switch, その他 Repeat o for, do, while, その他 Label o case, default, その他 Operator o "sizeof", "+", "*", その他 Keyword o その他のキーワード Exception o try, catch, throw
*PreProc o 一般的なプリプロセッサ命令 Include o #include プリプロセッサ Define o #define プリプロセッサ Macro o Defineと同値 PreCondit o プリプロセッサの #if, #else, #endif, その他
*Type o int, long, char, その他 StorageClass o static, register, volatile, その他 Structure o struct, union, enum, その他 Typedef o typedef宣言
*Special o 特殊なシンボル SpecialChar o 特殊な文字定数 Tag o この上で CTRL-] を使うことができる Delimiter o 注意が必要な文字 SpecialComment o コメント内の特記事項 Debug o デバッグ命令
コメント内で追加要素にマッチを行なうには、クラスタcCommentGroupを使用する。
例: :au Syntax c call MyCadd() :function MyCadd() : syn keyword cMyItem contained Ni : syn cluster cCommentGroup add=cMyItem : hi link cMyItem Title :endfun
ANSIの定数はグループ"cConstant"でハイライトされる。これには"NULL", "SIG_IGN"や
その他のものが含まれる。しかしANSI標準でないもの、例えば"TRUE"は含まれない。も
しもこれが紛らわしいならば、cConstant用のハイライトを削除する: :hi link cConstant NONE
Lace (Language for Assembly of Classes in Eiffel)は大文字・小文字を無視する。
しかしスタイルガイドラインはそうでない。大文字・小文字を区別してハイライトさせ
るには、vim変数'lace_case_insensitive'を初期化ファイル中で定義すればよい: :let lace_case_insensitive=1
Waterloo Maple IncによるMaple Vは記号代数をサポートしている。その言語はユーザ
によって選択的にロードされる関数のパッケージをたくさんサポートしている。Maple
V release 4で供給される標準的なパッケージセットの関数がユーザの判断によって強
調される。ユーザは.vimrcに以下を書くと、全てのパッケージ関数がハイライトされる:
syntax/sh.vim は構文ベースの折り畳みを数種類用意している: let g:sh_fold_enabled= 0 (デフォルト。構文折り畳みなし) let g:sh_fold_enabled= 1 (関数の折り畳みを有効化) let g:sh_fold_enabled= 2 (ヒアドキュメントの折り畳みを有効化) let g:sh_fold_enabled= 4 (if/do/for の折り畳みを有効化)
{options}は行のどこに置いてもよい。それらは与えられたキーワード全てに
適用される。オプションがキーワードの後にあっても同じ。以下の例はまった
く同じ意味になる: :syntax keyword Type contained int long char :syntax keyword Type int long contained char :syntax keyword Type int long char contained *E789*
Vimのexコマンドのようにキーワードに短縮形があるとき、省略可能な部分を
[]のでくくることによって受け入れるキーワードをいっぺんに定義することが
できる: :syntax keyword vimCommand ab[breviate] n[ext]
Note: リージョンの開始は、startパターンのマッチによってのみ決まる。
endパターンの照合のチェックはされない。次のは機能しない: :syn region First start="(" end=":" :syn region Second start="(" end=";"
2番目のは常にFirstより前にマッチする(最後に定義されたパターンが優先され
る)。こうすると、その前に':'があるかどうかに関わらず、2番目のリージョ
ンが次の';'まで続く。マッチを使うとうまくいく: :syn match First "(\_.\{-}:" :syn match Second "(\_.\{-};"
このパターンは"\_."によって任意の文字と改行にマッチし、"\{-}"によって
繰り返しにマッチする(最小限の個数の繰り返し)。
引数"contained"が与えられると、そのアイテムはトップレベルでは認識されず、他の
マッチの"contains"フィールドで指定されたときのみ認識される。例: :syntax keyword Todo TODO contained :syntax match Comment "//.*" contains=Todo
ms Match Start マッチしたテキストの開始位置のオフセット
me Match End マッチしたテキストの終了位置のオフセット
hs Highlight Start ハイライトが始まる位置のオフセット
he Highlight End ハイライトが終わる位置のオフセット
rs Region Start リージョンの本体が始まる位置のオフセット
re Region End リージョンが終わる位置のオフセット
lc Leading Context パターンの"leading context"を過ぎた後のオフセット
{offset}は次のうちのどれか:
s パターンのマッチ部分の先頭
s+{nr} パターンのマッチ部分の先頭から右へ{nr}文字目
s-{nr} パターンのマッチ部分の先頭から左へ{nr}文字目
e パターンのマッチ部分の末尾
e+{nr} パターンのマッチ部分の末尾から右へ{nr}文字目
e-{nr} パターンのマッチ部分の末尾から左へ{nr}文字目 {nr} ("lc"専用): ら左へ{nr}文字目
skipパターンも"\n"を含んでよい。ただし次の行の最初の文字がskipパターンにマッチ
していても、そこからendパターンの検索が続けられる。これは、再描画は領域内のど
の行でも始まることができ、skipパターンが前の行から始まったかどうかはチェックさ
れないからである。例えば、skipパターンが"a\nb"で、endパターンが"b"のとき、次の
テキストの2行目でendパターンがマッチする。 x x a b x x
つまり、skipパターンは"\n"以降の文字にはマッチしないことになる。
*:highlight-verbose* 'verbose'を0でない値にしてハイライトグループの一覧を表示すると、最後に設定され
た場所も表示される。例: :verbose hi Comment Comment xxx term=bold ctermfg=4 guifg=Blue Last set from /home/mool/vim/vim7/runtime/syntax/syncolor.vim
ほとんどのカラー対応xtermは8色しか持たない。デフォルト設定で色がつかない場合は
以下を.vimrcに加えれば正常に色がつくはずである: :if &term =~ "xterm" : if has("terminfo") : set t_Co=8 : set t_Sf=<Esc>[3%p1%dm : set t_Sb=<Esc>[4%p1%dm : else : set t_Co=8 : set t_Sf=<Esc>[3%dm : set t_Sb=<Esc>[4%dm : endif :endif
[<Esc>はエスケープ文字そのもの。CTRL-V<Esc>とタイプして入力する]
以下を.vimrcに加えるとこのxtermで動くはずである(16色用): :if has("terminfo") : set t_Co=16 : set t_AB=<Esc>[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm : set t_AF=<Esc>[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm :else : set t_Co=16 : set t_Sf=<Esc>[3%dm : set t_Sb=<Esc>[4%dm :endif
[<Esc>はエスケープ文字そのもの。CTRL-V<Esc>とタイプして入力する]
これらを即座に更新するには.XdefaultsファイルをXオプションデータベースマネー
ジャに再読み込みさせる(.Xdefaultsを変更したときはこれを行う必要がある): xrdb -merge ~/.Xdefaults *xterm-blink* *xterm-blinking-cursor*
xtermでカーソルを点滅させるにはtools/blink.cを見ること。またはThomas Dickeyの
xtermのパッチレベル107以上を使い(入手場所は上を参照)、以下のリソースを設定す
る。
XTerm*cursorBlink: on
XTerm*cursorOnTime: 400
XTerm*cursorOffTime: 250
XTerm*cursorColor: White
*hpterm-color*
次の設定はhptermで(大体)うまく機能する。文字色は8色だけサポートしている: :if has("terminfo") : set t_Co=8 : set t_Sf=<Esc>[&v%p1%dS : set t_Sb=<Esc>[&v7S :else : set t_Co=8 : set t_Sf=<Esc>[&v%dS : set t_Sb=<Esc>[&v7S :endif
[<Esc>はエスケープ文字そのもの。CTRL-V<Esc>とタイプして入力する]
*TTpro-telnet*
次の設定がTTpro telnet用にうまくいく。Tera Term ProはMS-Windows用のフリーウェ
ア/オープンソースプログラムである。 set t_Co=16 set t_AB=^[[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{32}%+5;%;%dm set t_AF=^[[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{22}%+1;%;%dm
また、TTproのSetup→Window→Full Colorが有効になっていることと、
Setup→Font→Enable Boldが無効になっていることを確認すること。
(この情報はJohn Love-Jensen <eljay@Adobe.COM>によって提供された)