automatic.vim で unite.vim に設定する場合の注意

unite.vim に限った話ではないのですが、処理の内容によっては BufWinEnter が呼び出された時にはまだ filetype が設定されていない事があります。
その為、次のように filetype でマッチするような設定では automatic.vim が正しく処理しない場合があります。

" デフォルトでは BufWinEnter 時に処理するが、
" BufWinEnter 時にはまだ filetype が設定されていないのでマッチしない
let g:automatic_config = [
\   {
\       "match" : {
\           "filetype" : 'unite',
\       },
\       "set" : {
\           "height" : "50%",
\           "move" : "bottom",
\       },
\   },
\]


この場合は、"filetype" ではなくて "bufname" 等を使用する必要があります。

" バッファ名が [unite] もしくは *unite* の場合にマッチする
let g:automatic_config = [
\   {
\       "match" : {
\           "bufname" : '[[*]unite[]*]',
\       },
\       "set" : {
\           "height" : "50%",
\           "move" : "bottom",
\       },
\   },
\]


これで unite.vim にマッチするようになります。
ここら辺は他のプラグインの仕様に依存してしまうのでどうしようもないのですが、マッチしなかった原因を突き止めるぐらいは automatic.vim で簡単に行いたいですねぇ…。