9. 分隔窗口
將一個(gè)窗口分隔成多個(gè)窗口晴裹,可以同時(shí)顯示或者編輯多個(gè)文件谴分,或者可以顯示或編輯同一個(gè)文件的不同位置。
-
- 分隔一個(gè)窗口
-
:split
命令:將屏幕分成上下兩個(gè)窗口切距,并將光標(biāo)定位在上面的窗口中趾徽。 -
:vsplit
命令:將屏幕分成左右兩個(gè)窗口续滋,并將光標(biāo)定位在左邊的窗口中。 -
CTRL-w w
(window)命令:切換當(dāng)前活動(dòng)窗口孵奶,與CTRL-w CTRL-w
功能相同疲酌。 -
:close
命令:關(guān)閉當(dāng)前活動(dòng)窗口。比如:quit
或ZZ
均可以關(guān)閉當(dāng)前窗口了袁,但是其優(yōu)點(diǎn)在于可以阻止你關(guān)閉最后一個(gè)窗口朗恳,不會(huì)意外的將Vim退出。 -
:only
命令:關(guān)閉除當(dāng)前窗口之外的所有窗口早像。
-
- 為另一個(gè)文件分隔出一個(gè)窗口
-
:split {otherFile}
:打開第二個(gè)窗口同時(shí)在新打開的窗口中開始編輯僻肖。 -
:new
:打開一個(gè)新的窗口并開始編輯一個(gè)空的緩沖區(qū)。- 備注:可以重復(fù)的使用
:split
或new
命令打開任何你喜歡的窗口數(shù)目卢鹦。
- 備注:可以重復(fù)的使用
-
- 窗口的大小
-
:3solit {fileName}
:高度為3的新窗口,名為{fileName}
的文件。
-
-
CTRL-w +
:窗口高度增加1行冀自。
-
-
-
CTRL-w -
:窗口高度減小1行揉稚。
- 備注:可以增加計(jì)數(shù)命令,如
4CTRL-w -
一次減少4行熬粗。 -
{height} CTRL-w
:窗口高度指定為一個(gè)固定的height搀玖。 - 備注:不指定高度時(shí),默認(rèn)讓窗口達(dá)到它的最大的高度驻呐。
-
:set mouse=a
:設(shè)置使用鼠標(biāo)控制窗口調(diào)整灌诅。
-
-
- 常用選項(xiàng)
-
winminheight
:強(qiáng)制窗口的最小高度,可以使用:set wmh=4
含末。 -
winminwidth
:強(qiáng)制窗口的最小寬度猜拾,可以使用:set smw=4
。 -
equalalways
:自動(dòng)讓所有窗口均攤屏幕上可用的高度和寬度佣盒。
-
- 垂直分隔
-
- 常用命令
-
:vsplit
命令:將屏幕分成左右兩個(gè)窗口挎袜,并將光標(biāo)定位在左邊的窗口中。 -
:vnew
:垂直打開一個(gè)新的窗口并開始編輯一個(gè)空的緩沖區(qū)肥惭。
-
- 切換窗口
-
CTRL-w h
:切換到左邊的窗口盯仪。 -
CTRL-w j
:切換到下邊的窗口。 -
CTRL-w k
:切換到上邊的窗口蜜葱。 -
CTRL-w l
:切換到右邊的窗口全景。 -
CTRL-w t
:切換到頂部的窗口。(top) -
CTRL-w b
:切換到底部的窗口牵囤。(bottom)
-
- 移動(dòng)窗口
-
CTRL-w H
:向左移動(dòng)窗口 -
CTRL-w J
:向下移動(dòng)窗口 -
CTRL-w K
:向上移動(dòng)窗口 -
CTRL-w L
:向右移動(dòng)窗口
-
- 針對(duì)所有窗口操作的命令
-
- 常用命令
-
:qall
:關(guān)閉所有的窗口蚪燕。(quit all) -
:wqall
:保存所有穿夠內(nèi)容并關(guān)閉窗口。(write quit all) -
:qall!
:強(qiáng)制關(guān)閉所有的窗口奔浅,不為文件保存馆纳。
-
- 為每一個(gè)文件打開一個(gè)窗口
-
vi -o *.txt
:水平打開多個(gè)文件,并且為每一個(gè)文件打開一個(gè)窗口汹桦。 -
vi -O *.txt
:垂直打開多個(gè)文件鲁驶,并且為每一個(gè)文件打開一個(gè)窗口。 -
:all
命令:將文件列表中的文件舞骆,各打開一個(gè)水平的窗口進(jìn)行顯示或編輯钥弯。 -
:vertical all
命令:將文件列表中的文件,各打開一個(gè)垂直的窗口進(jìn)行顯示或編輯督禽。
-
- 使用vimdiff查看文件的區(qū)別
- 備注:
vimdiff
是Vim的另一種特殊的啟動(dòng)方式脆霎,可以顯示文件的不同之處。 -
- 常用命令
-
vimdiff {fileName} {fileName}
:以diff模式打開兩個(gè)文件進(jìn)行比較狈惫。 -
:vertical diffsplit {fileName}
:可以運(yùn)行Vim之后進(jìn)行比較兩個(gè)不同的文件睛蛛。 -
]c
和[c
:跳到下一個(gè)或上一個(gè)兩個(gè)文件的不同的地方。
-
- 消除差異
-
diffupdate
:重新比較兩個(gè)文件,更細(xì)差異忆肾,主要用于修改文本之后荸频。 -
dp
(diff put):將當(dāng)前窗口不同的內(nèi)容放到另一個(gè)窗口中。 -
do
(diff obtain):從另一個(gè)窗口中對(duì)應(yīng)的位置上取來(lái)了差異的內(nèi)容客冈。
-
- 其他
-
CTRL-w CTRL-^
:分隔出一個(gè)窗口來(lái)編輯前一個(gè)文件旭从。
-
-
- 常用選項(xiàng)
-
:set scrollbind
:打開同步滾動(dòng),通常這個(gè)選項(xiàng)是默認(rèn)開啟的场仲。 -
laststatus
:0 永不和悦;1 只有在有至少兩個(gè)窗口時(shí);2 總是 -
splitbelow
:用來(lái)控制新打開窗口出現(xiàn)在當(dāng)前窗口的下邊渠缕。 -
splitright
:用來(lái)控制新打開窗口出現(xiàn)在當(dāng)前窗口的右邊鸽素。
-
- 頁(yè)簽
- 解決平鋪在顯示屏幕上窗口不夠用的問(wèn)題。
-
CTRL-w T
:將當(dāng)前活動(dòng)窗口以頁(yè)簽的形式顯示褐健。 -
:tabedit {fileName}
:以頁(yè)簽的形式顯示{fileName}
的文件付鹿。 -
gt
(goto tab):轉(zhuǎn)到下一個(gè)標(biāo)簽頁(yè),最后一個(gè)標(biāo)簽頁(yè)回到第一個(gè)蚜迅。 -
gT
(goto tab):轉(zhuǎn)到上一個(gè)標(biāo)簽頁(yè)舵匾,第一個(gè)標(biāo)簽頁(yè)回到最后一個(gè)。 -
{count}gt
:轉(zhuǎn)到第{count}
個(gè)標(biāo)簽頁(yè)谁不,首個(gè)標(biāo)簽頁(yè)的編號(hào)為1坐梯。 -
:tabonly
:關(guān)閉除當(dāng)前頁(yè)簽之后的所有頁(yè)簽。