Vim切分窗口(Split Window)

vim即可以切分窗口,也可以将窗口分页,分页以后仍然可以在页签内继续切分窗口,很强大有木有。

启动时切分窗口

启动时分割窗口的参数,man里是这样写的:

-o[N]       Open N windows stacked.  When N is omitted, open one window for each file.
-O[N]       Open N windows side by side.  When N is omitted, open one window for each file.

参数小写o用于水平分割窗口

$ vim -o[N] file1 file2 ... 

参数大写O用于垂直分割窗口

$ vim -O[N] file1 file2 ... 

N指定分割几个窗口,如果不指定参数N,则每一个文件打开一个分割窗口。如果指定参数N,不指定file参数,则显示空白的分割窗口
,参数N不必与要打开的文件个数相同。

vimdiff命令也是以切分窗口的方式来打开文件并高亮展示文件之间的差异,vimdiff同样识别上面说过的小写o和大写O参数,同样也可以指定N,vimdiff默认以垂直切分窗口显示。

$ vimdiff [-o[N] | -O[N]] file1 file2 ... 

动态切分窗口

打开vim编辑窗口之后,仍然可以方便的按需切分窗口。

水平切分
有多个命令可以水平切分窗口,如果提供file参数,可以在新分割的窗口中显示文件内容

:[N]sp[lit] [file]
:[N]new [file]

还有一个快捷键组合

[N]Ctrl+w s

垂直切分
有多个命令可以垂直切分窗口,如果提供file参数,可以在新分割的窗口中显示文件内容

:[N]vs[plit]
:vert[ical] sp[lit]
:[N]vne[w]
:vert[ical] new

还有一个快捷键组合

[N]Ctrl+w v

可选参数N是一个数字,用于指定新分割窗口的大小,以行数计。

移动光标

要在切分窗口间移动光标,只要先按CTRL+w,然后组合vim的光标移动键h,j,k,l等就可以在窗口间移动光标

移动到左侧紧邻窗口

CTRL+w h

移动到下面紧邻窗口

CTRL+w j

移动到上面紧邻窗口

CTRL+w k

移动到右侧紧邻窗口

CTRL+w l

在窗口间依次循环切换

CTRL+w w

移动到最顶部(top)的窗口

CTRL+w t

移动到最底部(bottom)的窗口

CTRL+w b

移动到前一个(previous)的窗口

CTRL+w p

移动窗口

仍然需要先按CTRL+w,不过移动窗口使用大写的vim光标键H,J,K,L等。不过这里稍微有些不同,马上会看到

移动当前窗口到最左侧

CTRL+w H

移动当前窗口到最底部

CTRL+w J

移动当前窗口到最顶部

CTRL+w K

移动当前窗口到最右侧

CTRL+w L

当前窗口与下面窗口或右侧窗口进行位置交换(eXchange)。
如果当前窗口在底部,下面已经没有其他窗口,这时命令将当前窗口与上面窗口进行位置交换。
如果当前窗口在最右侧,右侧已经没有其他窗口,这是命令将当前窗口与其左侧的窗口进行位置交换。

ctrl+w x

窗口向下进行循环(recycle)移动,这个命令可以前缀一个数字N作为参数,指明向下循环移动所执行的次数。

[N]ctrl+w r

窗口向上进行循环(Recycle)移动,这个命令可以前缀一个数字N作为参数,指明向上循环移动所执行的次数。

[N]ctrl+w R

窗口大小

调整窗口高度

增加高度,默认每次增加一行,如果指定参数N则增加N行

[N]Ctrl+w [N]+

减少高度,默认每次减少一行,如果指定参数N则减少N行

[N]Ctrl+w [N]-

所有窗口高度一致

Ctrl+w =

使当前窗口调整到指定高度,如果指定参数N则调整到指定的N行高度,否则当前窗口的高度尽可能的最大。

[N]Ctrl+w _

resize命令调整窗口高度。resize不带任何参数,则当前窗口的高度尽可能的最大。如果指定参数N则调整到指定的N行高度,如果指定参数N的同时使用+或者-前缀修饰,则在当前窗口高度的基础上增加或者减少N行高度。

:res[ize] [[+|-]N]

窗口宽度调整

增加窗口宽度,如果指定N则增加N行宽度

[N]Ctrl+w [N]>

减少窗口宽度,如果指定N则减少N行宽度

[N]Ctrl+w [N]<

关闭窗口

可以使用ZZ或是:q命令或ctrl+w c关闭当前窗口。

命令ctrl+w o可以使得当前窗口成为屏幕上的唯一(only)窗口,而其他窗口全部关闭。

References:
[1]VIM学习笔记 窗口(Window)
[2]Vim的分屏功能

===
[erq]

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.