1. 構文の定義ファイル
vimでは「拡張子名.vim」というファイル内に各拡張子に対する構文が定義されます。
例えば、C言語(example.c)の構文の定義はc.vim、
HTML(example.html)であればhtml.vimというファイル内に記述されます。
これらの構文の定義ファイルは~/vim74/syntaxのフォルダ内に置かれています。
未定義の拡張子に対する構文定義を追加することもできます。
今回は例として.txtの構文定義を作成します。
txt.vimはデフォルトで存在しないので、
txt.vimを新たに作成して~/vim74/syntaxのフォルダ内に保存します。
ハイライトしたい構文を書き並べましょう。
syntax keyword txtComment コメント
syntax keyword txtConstant 定数
syntaxmatch txtString /文字列/syntaxmatch txtIdentifier /何これ/syntaxmatch txtError /エラー/highlight link txtComment Comment
highlight link txtConstant Constant
highlight link txtString String
highlight link txtIdentifier Identifier
highlight link txtError Errorletb:current_syntax ="txt"
書き方は構文を指定するときにsyntax keyword [グループ名] [構文]
やsyntax match [グループ名] [構文]
といった具合に記述します。
このときグループ名と構文は自由に決められます。
keywordとmatchの違いはよくわからないけど結果を後に示します。
keywordやmatchの他にもハイライト箇所を範囲で指定するregionがあるようです。
ハイライトする色を選択するときにはhighlight link [グループ名] [ハイライトカラー]
とします。
ここでグループ名は自分で決めたものから選びます。
ハイライトカラーは多数用意されている中から選びます。:h syntax
というコマンドで一覧を見ることができます。
2. vimrcに追加する内容
vimrcには次の一文を追加するだけでokです。
auBufRead,BufNewFile *.txt setfiletype=txt
他の拡張子の場合には「txt」の部分を変更してください。
3. test.txtで試す
keywordで定義した「コメント」と「定数」は一行目ではハイライトされませんね。
どうやらkeywordで定義すると他の文字列と連続する形で構文が含まれる場合にはハイライトされないようです。
空白や記号と連続する場合はハイライトされています。