2013/12/10

pathogen + vim-jsonで快適JSON生活 on vim

休暇を使ってちまちまとAWS CloudFormationのTemplateを書いてるんだけど、JSONのSyntaxハイライトがされていないと大変見づらい。


そこでvimのJSON Syntaxハイライトをしてくれるplugin「vim-json」を入れた。

pathogenのセットアップ

vim-jsonは「Pathogen-friendly.」だそうなので、まずはpathogenをセットアップする。

pathogenは
  • 通常だと.vim以下の各ディレクトリからpluginファイルを読み取るが、
  • .vim/bundle/プラグインディレクトリからもpluginファイルを読み取ってくれる
ためのplugin。これを使うことで各pluginがディレクトリ毎に管理されすっきりするのと、githubで公開されているpluginはgit cloneで丸ごとコピーしてしまうことで簡易にセットアップが可能になる。

pathogenのセットアップは以下の通り。必要なディレクトリを作成し、curlを使ってpathogen.vimを作成する。
$ mkdir -p ~/.vim/autoload ~/.vim/bundle 
$ curl 'www.vim.org/scripts/download_script.php?src_id=19375'  > ~/.vim/autoload/pathogen.vim
pathogenを有効にするために.vimrcを修正する。
$ vi ~/.vimrc
# 以下行を追加
call pathogen#infect() 
vim-jsonのセットアップ

上述の通り、git cloneでごそっと持ってくる。
$ cd ~/.vim/bundle
$ git clone https://github.com/elzr/vim-json.git
これだけ。試しに~/.vim/bundle/vim-json/json-test.json, jsonp-test.jsonpを開くと、ちゃんとSyntaxハイライトされている。

CloudFormationのTemplate用にファイルタイプを追加する

この状態だとJSONとして定義されたファイル名しかJSON Syntaxハイライトされないが、CloudFormationのTemplateファイルは*.templateという拡張子で作成することが多い。このため*.template拡張子もJSONとして見なすよう、ファイルタイプを追加する。

vimのファイルタイプの追加は~/.vim/filetype.vimに記述する。
$ vi ~/.vim/filetype.vim
if exists("did_load_filetypes")
  finish
endif
augroup filetypedetect
  au! BufRead,BufNewFile *.template         setfiletype json
augroup END
結果、*.template ファイルを開くとこんな感じに!


まとめ

pathogen便利。vimのプラグインはあんまり入れない派だったんだけど、ほかにも便利なの探してみよう...というプラギン沼。



Vimテクニックバイブル ~作業効率をカイゼンする150の技Vimテクニックバイブル ~作業効率をカイゼンする150の技
Vimサポーターズ

技術評論社
売り上げランキング : 214254

Amazonで詳しく見る by AZlink