2009年12月22日 星期二

vim tab功能

在vim下,可以使用類似firefox, kkman,在一個應用程式中,可以有多個畫面!
我主要分成兩大類!

一個是使用:split:vsplit,把一個畫面同時分成兩個以上的畫面,用這一個的好處就是,可以「同時」看到多個檔案開啟!

而另一個就是使用tab的方式,雖然一次只能看到一個畫面,但是,開啟多個檔案的時候,不會讓windows最下面的開啟檔案非常的複雜~而且,檔案之間,仍然可以使用vim內建的copy功能(像是yy, p...等等指令)~而這一個也是本篇文章要提到的主題~

一次 vi 數個檔案來作編輯,預設 vim (也就是 vi) 同時可開 10 個 tab (這可以透過 set tabpagemax= 的方式設定,將它加大或減少)。

也就是說,當你想同時 vim 三個檔案 (例如 file1、file2、file3),可以:

vim -p file1 file2 file3

還可以:set tabline來定義 tab 顯示方式

tab相關的功能為:
=========================================
:tabdo
可以同時對目前的所有已開啟的tabfile執行相同的動作,這一個動作對我非常有用
例如:對目前所有用tab開啟的檔案內容把originalstring轉換成newstring
:tabdo %s/originalstring/newstring/gc

另一個例子,把所有的檔案中,有Caspar-comment的行刪掉
:tabdo %!grep -v Caspar-comment
如此一來真的可以省下非常多的打指令的時間

[start-20100307-add]
可以直接使用vim內建的功能達到,而不需要使用到外部指令
:g/.*Caspar-comment.*/d
[end-20100307-add]
=========================================
:tabn(ext)
當有多個tab的時候,在execute mode下打:tabn就是移動到下一個tab
括號的部分可以打,若不打的話,就是簡寫
或是 gt, C-PageDown也可以達到相同的效果
=========================================
:tabp(revious)
當有多個tab的時候,在execute mode下打:tabp就是移動到上一個tab
或是 gT, C-PageUp也可以達到相同的效果
=========================================
:tabs
顯示目前的所有tab的情況
=========================================
:tabnew filename
開啟一個新的tab;後面可以接新的檔案名稱
=========================================
:tabe(dit) filename
開啟一個檔案,當檔案不存在的時候,直接開啟一個新的檔案
=========================================
:tabc(lose)
關掉目前正在使用的tab分頁
=========================================
:tabo
關閉其它tab分頁
=========================================
:tab(fi)r(st)
跳到編號為1號的tab分頁
=========================================
:tabfind filename
尋找名為filename的tab分頁
=========================================
:tabl(ast)
跳到編號為最後一號的tab分頁
=========================================
:tabm [N]
移動到編號為N的tab分頁
=========================================
在vimrc內容中,加入熱鍵
" 加入tabnew, tabprevious, tabnext的快速鍵
nmap <C-t> :tabnew<CR>
nmap <C-Left> :tabprev<CR>
nmap <C-Right> :tabnext<CR>

=========================================
在新的tab頁面顯示help頁面
:tab help
=========================================
參考資料:
Vim 的小玩意: tab 怎麼玩?
vim tab 功能
My editor ,Vim
Vim7 的 <C-Left> 與 <C-Right>
VIM Tab & Space
Vim Hacks

沒有留言: