VIM 窗口(Windows)

窗口(Window)被用来查看缓冲区(Buffer)里的内容。你可以用多个窗口察看同一个缓冲区,也可以用多个窗口察看不同的缓冲区。

Vim主窗口可以容纳多个分割的窗口。此外还有标签页(tab-page),每个标签页也能容纳多个窗口。

在默认情况下,与Vi类似,Vim启动后只打开一个窗口。参数 "-o" 和 "-O" 可以让Vim为参数列表里的每一个文件打开一个窗口。参数 "-o" 水平分割窗口;参数 "-O" 垂直分割窗口。如果 "-o" 和 "-O" 都用了,那么最后一个参数决定分割的方向。例如,下面的例子打开三个水平分割的窗口。

vim -o file1 file2 file3

分割窗口

:split命令,会将当前窗口平分为两个。并且在这两个窗口中同时显示当前文件。如果你在其中一个窗口进行编辑,那么另一个窗口也会同步显示出你所做的工作。

我们通常并不是要在两个窗口中显示同一个文件,而是要在两个窗口中编辑不同的两个文件。使用:split file命令,就可以在另一个窗口中打开文件file了。

命令:new可以直接打开一个新窗口,并对新文件进行编辑。

:sview是:split和:view两个命令的组合,它可以分隔出一个新窗口,并以只读方式打开指定的文件。

Windows_Split

切换窗口

在gvim中,只要用鼠标点击就可以进入不同的窗口。而在vim中,则需要用ctrl+Ww命令在多个窗口中进行切换。

命令ctrl+Wj可以将光标定位在下一个窗口中;ctrl+Wk可以将光标定位在上一个窗口中;ctrl+Wt切换到顶部的窗口;ctrl+Wb切换到底部的窗口。ctrl+Wp切换到进行切换操作以前所在的窗口。

移动窗口

ctrl+Wr命令可以使得窗口向下进行循环移动。这个命令可以带一个数字作为参数,指明向下循环移动所执行的次数。与其相类似的ctrl+WR命令,可以使得窗口向上循环移动。

命令ctrl+Wx,可以将当前窗口与下一窗口进行位置对换。如果当前窗口在底部,则没有下一个窗口,这时命令将当前窗口与上一个窗口进行位置对换。

利用ctrl+WK可以将当前窗口放到最顶端;而ctrl+WJ可以把当前窗口放到最底部。

关闭窗口

可以使用ZZ或是:q命令或ctrl+Wc关闭窗口。

命令ctrl+Wo可以使得当前窗口成为屏幕上的唯一窗口,而其他窗口全部关闭。系统会认为我们在其他的每一个窗口中都执行了:quit命令。

控制窗口大小

在输入split命令时,可以加入参数来指定打开窗口的大小。例如命令:3 split file,将在一个大小为三行的新窗口中打开文件file。我们也可以将这个命令中的空格去掉,写成:3split file

在多文本窗口中进行操作时,可以用ctrl+W+命令增大窗口,默认增量为1;用ctrl+W-命令减小窗口,默认值为1。ctrl+W=命令可以将几个窗口的大小变为相等。而命令countCtrl+W_可以使得当前窗口变得count这样高。如果没有指定count,将会使得当前窗口变得尽可能的最大。

当然,你也可以用鼠标上下拖动状态行来改变窗口的高度。

命令小结
:split新建一个窗口并显示当前文件
:new新建一个窗口并开始新文件
:sview新建一个窗口并只读打开文件
ctrl+Ww切换窗口
ctrl+Wj切换至下一窗口
ctrl+Wk切换至上一窗口
ctrl+Wt切换至顶部的窗口
ctrl+Wb切换至底部的窗口
ctrl+Wp切换至刚才所在的窗口
ctrl+Wr向下循环移动窗口
ctrl+WR向上循环移动窗口
ctrl+Wx将当前窗口与下一窗口位置对换
ctrl+WK将当前窗口放到最顶端
ctrl+WJ将当前窗口放到最底部
ctrl+Wc关闭当前窗口
ctrl+Wo关闭其他所有窗口
ctrl+W+增大窗口
ctrl+W-减小窗口
ctrl+W=等分窗口
Ctrl+W_最大化窗口