アルパカChef日記番外編 VimでChefクックブックを編集する時に便利かもしれないプラグイン
今回は少し趣向を変えて、Vimのお話。
自分はビマーなので、ChefのクックブックをいじるのにもVimです。
そこでVimでクックブックを書く時に便利(?)
かもしれないプラグインやScriptを紹介してみます。
chef.vim
http://www.vim.org/scripts/script.php?script_id=3623
リソース間を行き来するのを便利にしてくれるプラグインです。
.vimrc
まずは以下を追記しておきます。
キーマップはお好きな様に。
nnoremap <silent> <leader>cf :ChefFindAny<CR> nnoremap <silent> <leader>cs :ChefFindAnySplit<CR> nnoremap <silent> <leader>cv :ChefFindAnyVsplit<CR> nnoremap <silent> <leader>cr :ChefFindRelated<CR>
attributeジャンプ
attributeっぽい名前の上で実行します。
# 「node['apt']['cacher_port']」のどこかにカーソルを置いて <leader>cf port = node['apt']['cacher_port']
カーソルを置いて
attributeが定義されているファイルにジャンプしてくれます。
template / fileジャンプ
sourceのファイル名の上で実行します。
# 「01proxy.erb」のどこかにカーソルを置いて <leader>cf template '/etc/apt/apt.conf.d/01proxy' do source '01proxy.erb' mode 00644 end
レシピジャンプ
include_recipeのレシピ名の上で実行します。
# 「apt::cacher-client」のどこかにカーソルを置いて <leader>cf include_recipe "apt::cacher-client"
definitionジャンプ
definitions名の上で実行します
# 「authz_groupfile」のどこかにカーソルを置いて <leader>cf apache_module "authz_groupfile"
relatedジャンプ
relatedは「対になっているっぽいファイル間」を移動します。
たとえば
「recipes/default.rb」⇔「attributes/default.rb」
などです。
recipes/default.rbを開いている時に
attributes/default.rb へ移動します。
ドキュメントを見たい時
chefのリソースドキュメントを見たい時、いちいちWebで検索するのダルいので
ページヘ直接ジャンブ出来るようなVimスクリプト書いてみました。
かなり適当。
" jump chef doc "let g:chef_doc_browser = 'open -a Firefox' let g:chef_doc_browser = 'open -a /Applications/Google\ Chrome.app' let g:chef_doc_site = 'http://docs.opscode.com' function! ChefDocJump() let s:keyword = expand("<cword>") if s:keyword != "" let s:site_path = g:chef_doc_site .'/resource_'. s:keyword .'.html' let s:ret = system(g:chef_doc_browser. ' '. s:site_path) else echoh None endif return 1 endfunc nmap <Leader>cj :call ChefDocJump()<CR>
例:templateリソースのドキュメント見たい時
以下の場合、「template」の上にカーソルを置き
指定したブラウザでopscodeのtemplateページを開きます。
template '/etc/apt/apt.conf.d/01proxy' do source '01proxy.erb' mode 00644 end