VimでVerilogのコーディング環境を確保

VimにおけるVerilog開発環境については、ここ数年で色々なプラグインが標準サポートしてきた。
整理のために、今回はVerilog関連のプラグインの設定を少しまとめたいと思う。

スニペット

今年になって、neosnippetsがVerilogを標準サポートしている。
neosnippet-snippets/verilog.snip at master · Shougo/neosnippet-snippets · GitHub
そのためNeoBundle等でneosnippetsを入れると、そのままVerilog用のスニペットを利用できるようになる。

構文チェック

Verilogの構文チェックについては、syntasticが少し前から標準サポートしている。
NeoBundleでsyntasticを入れる場合は以下を.vimrcへ。

NeoBundle 'scrooloose/syntastic'

またこのVerilogの構文チェックを有効化するにはVerilatorのインストールが必要になる。
homebrew経由だと以下でインストール。

brew install verilator

なおこのsyntastic & verilatorのサポートは結構強力で、入れた時は最強のVerilogエディター誕生みたいな気分になれる。
以下はファイル保存時に表示される構文チェックの結果例。異常な構文の箇所に「>>」赤文字が、最下部に何が異常かの警告が出る。

f:id:goyoki:20150625220954p:plain

f:id:goyoki:20150625221012p:plain

ブロック間のジャンプ

matchit.vimを有効にすると、そのままbegin〜end、module〜endmoduleなどVerilogのブロック間を%でジャンプできるようになる。またhl_matchit.vimなども普通に動く。
matchit.vimはデフォルトで格納されているので、有効化は.vimrcに以下を挿入すればできる。

:source $VIMRUNTIME/macros/matchit.vim

入力補完

verilog.dict vimrc」などでウェブ検索すると、Verilog固有の辞書ファイルが見つかる。参考にして自作したり、ライセンスの範囲内で流用したりして、neocomplcache・neocompleteなどに登録すれば、Verilogの入力補完ができるようになる。