QFixHowm のリストを unite.vim で出力する
欲しかったのでちょっと書いてみました。
[unite-qfixlist]
let s:source = { \ "name" : "qfixlist", \ "description" : "qfixlist", \ "action_table" : { \ "new_memo" : { \ "is_selectable" : 0, \ } \ } \} function! s:source.action_table.new_memo.func(candidates) tabnew call qfixmemo#EditNew() endfunction function! s:source.gather_candidates(args, context) call qfixmemo#ListCmd() if get(a:args, 0, "") == "close" close endif return map(copy(qfixlist#GetList("")[0]), '{ \ "word" : v:val.text, \ "kind" : "file", \ "action__path" : v:val.filename \ }') endfunction call unite#define_source(s:source) unlet s:source
[コマンド]
:Unite qfixlist " qfixlist のウィンドウを閉じる場合は引数に close を渡す :Unite qfixlist:close
とりあえず、Vim script のソース見つつ書いてみたのでこれで問題がないかどうかは分からない。
一瞬ウィンドウが開いてしまうのはどうにかしたいけども…ぐぬぬ。
ちなみに起動1回目にキャッシングを行なっているので、再キャッシュする場合は、,ra を行う必要があります。
あと本記事とは全く関係ないですが gather_candidates の candidate に default_action を設定したいですね。
[{ "word" : "[ new memo ]", "default_action" : "new_memo" }]
みたいな感じで。