Vim の の挙動を変える
バッファを終了する際に
という事で、終了するバッファが他のタブ(ウィンドウ)で開いていないならバッファを削除するという挙動にしてみました。
[ソース]
function! s:flatten(seq) let result = [] for n in a:seq if(type(n) == type([])) let result = result + s:flatten(n) else let result = result + [n] endif unlet n endfor return result endfunction function! s:delete_window() let tabpagelist = s:flatten(map(range(tabpagenr("$")), "tabpagebuflist(v:val+1)")) if count(tabpagelist, winbufnr("%")) == 1 :bdelete else :quit endif endfunction " マッピングを潰したくないなら他のキーにでも " nnoremap <silent> <C-w><C-q> :call <SID>delete_window()<CR>
今回は Vim script でガシガシ書いてみたけど、他にいいやり方があるかしら?