2016年3月24日 星期四

vim套件:Tabbar與BufTabLine的差別

這篇就來講一下vim有關分頁管理的兩個插件tabbarbuftabline

首先,這是tabbar的圖。

我會想把tabbar換掉有幾點原因。

1. 因為最上方的分頁是用[]去做分隔,而[]又剛好是vim語法裡面的MatchParen,所以分頁切一切就會跑出藍底的MatchParen顏色,前後景顏色當然是可以從.vimrc裡面去設定,但不管我怎麼改顏色就是會跟整行分頁的配色不搭。
為了這個還想去把自己改tabbar.vim的程式碼,但把[]改成/\(這樣看起就跟Chrome瀏覽器的分頁有六成像)就會有目前分頁(CurrentBuffer)沒有上色的問題,因為tabbar.vim裡面的顏色是用[分頁編號:檔名]*去判斷為目前分頁來上色,但我看了半天vim的syntax語法還是看不懂怎麼自己改成/分頁編號:檔名\*去判斷為目前分頁。

2. 如圖所示目前的分頁都已經有顏色了為什麼還要加*表示目前是哪一個分頁,這點無法理解。

3. 裝了ack-vim.vim之後在quickfix window內按q後游標會跳到-TabBar-上面那行的行首,這點更是讓我無法忍受,怎麼會focus到那邊去?雖然這應該是ack-vim的問題,但表示這兩個套件的相容性就不是很好。

接著來看buftabline的圖。

沒有了討人厭的[]跟分頁編號,還能自己改配色,直接把第一行整個用掉,就算開很多分頁也不會顯得空間不夠(好傻好天真),在加上改成目前這樣的配色(跟Chrome有九成像)本人是感到相當滿意。
另外分頁其實就是vim內件的buffer功能,想多了解的話可以:h buffer來看一下文件。

更新
buffertabline有個嚴重的缺點就是沒有關閉分頁(close buffer)的功能,我下:bdelete:bd都會直接把整個vim關掉(崩潰~),這就是所謂的有一好沒兩好,看了半天:h buffer還是無解,幸好剛剛用google找到這個網頁,該作者寫了一個plugin可以關閉分頁而不會動到任何原本的視窗,可以把該網頁中間Alternative Script那一段複製下來存成bclose.vim然後丟進~/.vim/plugin裡面,再到~/.vimrc設個熱鍵就能用了。

沒有留言: