窗口(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两个命令的组合,它可以分隔出一个新窗口,并以只读方式打开指定的文件。
切换窗口
在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_ | 最大化窗口 |