unite.vim の action の設定方法いろいろ
この記事は Vim Advent Calendar 2012 310日目の記事になります。
さて、前回の Vim Advent Calendar では unite.vim の action について書いたのですが、今回はその action の設定方法なんかを簡単に紹介してみたいと思います。
[デフォルトの action を設定する]
kind に対してデフォルトの action を設定します。
その kind が設定されている候補を実行(
" ディレクトリは vimfiler で開く call unite#custom#default_action('directory' , 'vimfiler') " ファイルは tabdrop で開く call unite#custom#default_action('file' , 'tabdrop') " 次のように , で複数の kind に対して設定することもできる call unite#custom#default_action('file,buffer' , 'tabdrop')
ここで注意するのは『source』ではなくて『kind』に対して設定するという事です。
設定した kind のすべてのデフォルト action に反映されます。
[source に対してデフォルトの action を設定する]
上記は kind に対して設定しましたが、次のように書くことで source ごとに対してデフォルトの action を設定する事ができます。
特定の source の場合のみデフォルトの action を設定したい時に有効です。
" source/{name}/{kind} のように source と kind を指定する事ができる " source-bookmark の kind-directory は tabvimfiler を使用する call unite#custom#default_action("source/bookmark/directory", "tabvimfiler") " kind に * を設定すればその source のすべての kind に対して設定される " source-file のデフォルトの action を tabdrop にする call unite#custom#default_action("source/file/*", "tabdrop")
[action に対して別の action を設定する]
unite.vim では特定の action を呼ぶキーマッピングがいくつか設定されいます。
例えば、t キーを押すと "tabopen" action が呼び出されます。
この時に "tabopen" に対して別の action を設定することで t キーの挙動を自分好みに設定する事ができます。
" kind-file の tabopen を tabdrop にする call unite#custom#alias('file', 'tabopen', 'tabdrop') " kind-file の tabopen を tabvimfiler にする call unite#custom#alias('directory', 'tabopen', 'tabvimfiler')
また、unite#custom#default_action() と同様に source を指定して設定することもできます。
" source-file_mru の tabopen を split にする call unite#custom#alias('source/file_mru/file', 'tabopen', 'split')
このように自分にあった挙動を設定すると更に unite.vim の使い勝手がよくなると思います。