Shougo/unite.vim — Issue #98: Uniteのウィンドウを閉じたときに期待しているイベントが発生しない場合がある
Author: jakalada
Created: 2012-01-14 18:16:17+00:00
State: open

Uniteのウィンドウを閉じたときに、
イベントが発生する場合と発生しない場合があります。

[Poweline](https://github.com/Lokaltog/vim-powerline)というプラグインを使用していて、
Uniteのウィンドウを閉じたときに表示が更新されなかったため気づきました。

最初に気づいたときは、残りのウィンドウがひとつになったときだけかと思ったのですが、
複数のウィンドウが残っている場合でも、Unite実行時に選択していたウィンドウによっては、
イベントが発生しませんでした。

以下のコード内の`noautocmd close!`の実行後に暗に選択されたウィンドウの番号が、
`execute unite.winnr . 'wincmd w'`で指定されたときはイベントが発生しません。

~~~ vim
" autoload/unite.vim
function! s:quit_session(is_force) "{{{
...
...

if a:is_force || !context.no_quit
let bufname = bufname('%')

if winnr('$') == 1 || context.no_split
call unite#util#alternate_buffer()
else
noautocmd close!
execute unite.winnr . 'wincmd w'
call unite#_resize_window()
endif

call s:on_buf_unload(bufname)
else
...
...
endif

...
...
endfunction"}}}
~~~

closeで本来発生するイベントがすべて発生してくれるか、
BufEnter,WinEnter,FileType,BufUnloadのいずれかが発生してくれると、
Powelineプラグインの表示の問題は解消されそうです。

Powelineプラグインの更新のタイミングが問題かもしれないのですが、
確認よろしくお願いします。