顯示具有 tabbar 標籤的文章。 顯示所有文章
顯示具有 tabbar 標籤的文章。 顯示所有文章

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設個熱鍵就能用了。

2016年3月15日 星期二

我的vim離source insight好像有點遠


上一個工作用source insight用得很習慣,找關鍵字可以說是飛速,換新工作之後都是用putty連進虛擬機器上所以只能用vim,對於一直輸入find | grep感到相當的痛苦。

打錯字就不講了(弱者才會打錯字),一直會去找.svn資料夾也是很煩人的事情,就算加入把.svn資料夾的語法也是覺得很煩,於是開始想把vim弄得好用一點!(好像有哪邊怪怪的)

所以這兩個禮拜開始在裝vim的套件(OS:都三十幾歲了還要學著用vim說實在有點辛苦),以下插件的連結就不附了,因為滑鼠框一下右鍵搜尋google很快就有,而且超連結有可能會掛點,直接搜尋比較可靠。

目前我裝了
Vundle 自動安裝插件的插件。(第一個該裝的東西)

Taglist由Tagbar取代。
Tagbar 讓你在vim裡面可以看到程式碼的變數跟函式,功能類似Taglist,但感覺更好用一些,Taglist會把多個視窗的變數含式都列出來,非常奇怪的設計,而Tagbar會依照程式檔案的切換去顯示該檔案內的變數及函式。

NERDTree 讓你在vim裡面可以看到目錄樹跟檔案列表的插件。

vim-nerdtree-tabs 讓你的NERDTree不會因為開新分頁就消失的插件,這個很重要! 而且按ENTER開啟分頁不會把原本的開的文件蓋掉,NERDTree預設的熱鍵ENTER會把原本的蓋掉,T開新分頁但不切過去,t開新分頁順便切過去,這三個都非常的不直觀,我用得很痛苦,裝了這個之後新檔案會直接開在新分頁上並且focus過去,直觀就是好用!

Tabbar 管理分頁的插件,關閉分頁的設定是
:Tbbd
在~/.vimrc裡面設個熱鍵會很好用,本想設讓vim跟source insight還有Chrome瀏覽器一樣按CTRL+W都是關分頁的功能,但vim的CTRL+W都跟視窗的動作有關,所以只好放棄改用<Leader>w。
更新:這個插件裝了之後會跟其它套鍵的tab功能起衝突,移除又會把vim的page up/down還有上下左右鍵都搞掛,實在是有點困擾,除此之外關閉分頁之後會focus在前一個number的視窗(e.g. 1,2,3,4,把2關掉會focus在1),跟Chrome瀏覽器還有notepad++的行為都不一樣(e.g. 1,2,3,4,把2關掉會focus在原本的3),之後再看設定怎麼改。由buftabline取代。
buftabline 管理分頁的插件,我把用得很痛苦的tabbar換掉了!請看我的這篇文章來介紹這兩個插件有什麼分別。

ack-vim 讓ack-grep可以在vim中使用的插件
ack-grep是ACK這個搜尋工具的套件名稱,在Ubuntu中有另一個ack所以才改叫ack-grep。
因為我的虛擬機器作業系統是Ubuntu 12.04,所以用

sudo apt-get install ack-grep
裝的會是1.92版,然後用Vundle下載的ack.vim會有版本相容性的問題,所以在vim中輸入
:Ack keyword
會出現錯誤訊息unknown option: s然後什麼都找不到。
把這個錯誤訊息去google可以找到github上有人key過bug,要去~/.vimrc增加設定
let g:ack_default_options = " -H --nocolor --nogroup --column"
這個也很重要!花了我一堆時間去想說到底是哪裡沒裝好,沒想到是bug,弄好之後在vim中打

:Ack keyword
應該就可以找到想找的東西。
更新:在vim中用
:Ack
搜尋關鍵字再按q關閉搜尋視窗之後都會focus在Tabbar上面的那一串檔名裡,這點讓我感到困擾,正在找哪邊可以改,在NERDTree中按q就會乖乖回到程式碼中,或許是個方向。
幫插件除錯不如換插件,所以我換了vim-buftabline。

SrcExpl source explorer需要先安裝ctags才能使用,它被執行之後會在vim下面開啟一個視窗來顯示目前游標所在位置變數是在哪個檔案被定義以及上下幾行的內容,不過目前用起來有一些很明顯的定義值卻會無法顯示,我認為應該是有bug,但好像沒有其他的替代插件可以換。

CtrlP 當你在normal mode按下Ctrl+P後,這個插件會去找出目前路徑下的所有檔案,你輸入模糊檔名會列出相關的檔案,相當方便。開什麼NerdTree慢慢找檔案已經落伍了!(誤)