vimのsyntax highlightにキーワードなどを追加した時のメモです。
vimにはキーワードなどの色を変える(highlight)する機能があるのですが、それを使ってある文字列を目立たせくて、ちょっと変え方を調べたのでそのメモです。
SQL文の中のキーワードだったので、sqlのfiletypeを拡張する形にしました。また、デフォルトのsqlだと、mysqlのキーワードに対応していなかったものがあるので、それも追加しています。
デフォルトのsqlの後で読み込まれる設定を追加
~/.vim/after/syntaxの下にsyntaxファイルを置くと、デフォルトのものに追加して読み込まれるようになります。今回はsql.vimを追加します。
$ mkdir -p .vim/after/syntax $ vi ~/.vim/after/syntax/sql.vim
syntaxファイルの中身
sql.vimの内容はこんな感じ。sqlTypeにmysqlのタイプを追加したり、sqlStatementにSQL文のキーワードを追加しています。
txtValue という新しいクラスを定義して、目立たせたいキーワードを正規表現で記載しています。
syn keyword sqlType tinyint int text datetime " syn keyword sqlOperator syn keyword sqlStatement primary key syn match sqlComment "#.*$" contains=sqlTodo,@Spell syn region sqlString matchgroup=Quote start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=txtValue syn region sqlString matchgroup=Quote start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=txtValue syn match txtValue /%\$V\d\d\d\d%/ hi def link txtValue Identifier
/usr/share/vim/vim80/syntax (Ubuntuの場合)にデフォルトのsyntaxの定義ファイルがありますので、そちらを参考にするとよいです。