vim多窗口編輯
vim提供多窗口編輯的功能,可以簡化復合的編輯任務。vim的多窗口並不是說在終端上啟動多個vim實例。
啟動多窗口編輯
vim的多窗口是動態的,可以開始編輯時就打開多窗口,也可以工作時隨時增加新窗口,或者刪除一個窗口。
$ vim -o file1 file2 打開一個編輯會話,顯示為水平分割成兩半的窗口,一個文件占用一個窗口。
如下 圖所示:
如果畫面分割後不足以容納下所有窗口,那麼第一個文件會占用大部分窗口,余下的窗口則載入緩沖區,暫時不能看到,但仍可以取用。
-o後面加一個數字n,是預分配窗口的形式打開:
$ vim -o5 file1 file2 將分配5個相同的窗口,有3個是閒置的
vim的多窗口編輯
:split 新建一個窗口,將當前窗口分割成兩半,他們顯示的是相同緩沖區的內容(同一個文件)。這樣就可以在兩個窗口中浏覽相同的文件了。
:vsplit 創建全新的垂直分割的窗口,同樣是顯示和當前窗口同一個文件內容。效果如下:
當多個窗口編輯同一個文件時,在任意一個窗口進行編輯(例如刪除一行),那麼所有相同文件的窗口上都會同時反應效果,因為他們共享同一個文件緩沖區。
如果想編輯或浏覽另一個文件,而又不想失去在當前文件中的編輯位置,就用新文件的參數傳給:split命令
:split otherfile
分割窗口的選項
:[n] split(vsplit) [++opt] [+cmd] [file]
命令中:
n 為vim指定在新窗口中顯示的行數,且新窗口的大小剛好容納該行數,新窗口位於畫面頂端
opt 傳遞vim選項信息給新的窗口會話(請注意,它的前面必須加上兩個加號)
cmd 傳入欲在新窗口中執行的命令(請注意,它的前面必須加上一個加號)
file 指定在新窗口中編輯的文件
:sview filename 以只讀的方式水平分割打開一個新窗口
:sfind [++opt] [+cmd] [file] 和split的運作方式相似,但在path中尋找filename,如果vim未找到文件則不顯示
在窗口間游走
在gvim或vim中,在窗口中移動其實非常簡單,因為gvim已默認支持鼠標點擊來換編輯窗口,而vim中,則可以打開mouse選項,
:set mouse = a 為命令、輸入、導航都激活鼠標的使用
我們知道vim的特色就是可以脫離鼠標而工作,所以可以使用vim提供的全套導航命令,在會話中快速而准確的移動編輯窗口。
按住Ctrl + W,然後再加上h, j, k, l,分別表示向左、下、上、右移動窗口
Ctrl + w + h:向左移動窗口
Ctrl + w + j: 向下移動窗口
Ctrl + w + j: 向上移動窗口
Ctrl + w + l: 向右移動窗口
Ctrl + w + w:這個命令會在所有窗口中循環移動
Ctrl + w + t:移動到最左上角的窗口
Ctrl + w + b:移動到最右下角的窗口
Ctrl + w + p:移動到前一個訪問的窗口
移動窗口
vim中有兩種移動窗口方式,一種只是簡單地在屏幕上切換窗口,尺寸維持不變;另一種則是改變窗口的實際布局,還會調整尺寸,以填充它移動的位置。
1. 移動窗口本身(輪換或交換)
Ctrl + w + r:向右或向下方交換窗口,而Ctrl + w + R則和它方向相反。
光標會隨著窗口而移動
Ctrl + w + x:交換同列或同行的窗口的位置。vim默認交換當前窗口的與它下一個窗口的位置,如果下方沒有窗口,則試著與上一個窗口交換位置。亦可在此命令前加上數量,與制定的窗口交換位置。
2. 移動窗口並改變其布局
注:下面的第三個字母都是大寫,按玩Ctrl + w之後,按shif + 相應的字母。後面用^代替Ctrl
Ctrl + w + K :移動當前窗口至屏幕頂端,並占用全部寬度
^WJ: 移動窗口至屏幕底端,並占用全部寬度
^WH:移動窗口至屏幕左端,並占用全部高度
^WL:移動窗口至屏幕右端,並占用全部高度
^WT :移動窗口至屏新的現有分頁
3. 調整窗口尺寸
改變當前窗口的尺寸,同時當然也會影響到其他窗口。
在gvim和vim中,可以用鼠標點擊窗口的頂部白色條並窗口直接調整尺寸。
也可以直接用命令,調整尺寸命令也是以Ctrl + W開頭:
Ctrl + W + = :讓所有窗口調整至相同尺寸(平均劃分)
Ctrl + W + -:將當前窗口的高度減少一行,也可在ex命令中,:resize -4明確指定減少的尺寸
Ctrl + W + +:將當前窗口的高度增加一行。同樣在ex命令中,:resize +n 明確指定增加尺寸
Ctrl + W + < :將當前窗口的寬度減少
Ctrl + W + > :將當前窗口的寬度增加
Ctrl + W + |:將當前窗口的寬度調到最大,也可他哦你通過ex命令:vertical resize n明確指定改變寬度
分頁編輯
除了使多窗口編輯外,vim還允許創建多個分頁(tab),每個分頁各有獨自的行為,類似於浏覽器firefox或chrome的分頁浏覽功能。
我們可以在vim或gvim中使用分頁,但在gvim會更好用。
最終要的命令
:tabnew filename 打開新分頁並編輯新文件(可選的)。如果未指定文件,則只打開新分頁,並附上空的緩沖區。
:tabclose 關閉當前分頁
:tabonly 關閉其他所有的分頁。如果其他分頁中有修改過的文件,則不會移除該分頁,除非設置了autowrite選項。此時,所有修改過的文件都在分頁關閉前寫入磁盤。
游走分頁
可以直接點鼠標來移動到另一個分頁,也可以用命令
Ctrl + PageDown:移動到下一個分頁
Ctrl + PageUp:移動到上一個分頁
關閉與離開窗口
有4種關閉窗口的方式,分別是:離開(quit)、關閉(close)、隱藏(hide)、關閉其他窗口
^代表Ctrl鍵
^Wq,離開當前窗口
^Wc,關閉當前的窗口
^Wo,關閉當前窗口以外的所有窗口