2016年10月17日 星期一

vim buffer tips

vim的設定已經好一陣子沒有動了,不過有一個小問題一直著困擾我。

那就是在vim中用:ACK找出關鍵字之後開啟的quickfix視窗也算是一個buffer,這樣在使用熱鍵持續切換buffer的時候會變成quickfix的內容顯示在主要視窗裡,然後就會害我關錯視窗,非常惱人。

最近本來想說要開buftabline的原始碼自己試著改改看,不過動手之前還是先google看看有沒有人遇到一樣的問題,然後就找到了這篇

裡面提到使用:if &buftype ==# 'quickfix'可以判斷出是否為quickfix buffer然後就直接再切一個buffer。

再配上我自己用的熱鍵F9/F10 (上一個buffer/下一個buffer)就設成這樣。
map <F10> :bnext<CR>:if &buftype ==# 'quickfix'<Bar>:bnext<Bar>endif<CR>
map <F9>  :bprev<CR>:if &buftype ==# 'quickfix'<Bar>:bprev<Bar>endif<CR>

雖然切buffer還是會有點看得出來是先顯示quickfix再切下一個buffer,不過我覺得還算堪用。