在使用vi进行文本编辑的时候我们也可以打开多个窗口进行编辑。这也正是vi编辑器的强大这处。那么我们如何来打开多个窗口进行文本编辑呢?我们又如何在多个文本窗口中进行切换呢?如何来控制窗口的大小呢?在vi编辑器还有一个缓冲区的概念,利用缓冲区我们可以进行多文本的编辑。
打开一个窗口最简单的方法就是下面的命令::split。输入这样的命令后vi就会将当前的窗口平分为两个。并且在这两个窗口中显示的是同一篇文章。如果你在其中的一个窗口进行文编辑,那么另一个窗口也会同步的显示出你所做的工作。如何在两个窗口中进行切换呢?在gvim中要方便得多,只要用鼠标就可以进行窗口的切换。而在vim中则需要用命令来实现。CTRL_Ww这个命令可以实现在两个文本窗口中进行切换。切换窗口还有另外的命令:CTRL_Wj 可以将光标定位在下一个窗口中,而CTRL_Wk可以将光标定位在上一个窗口中。如果想关闭 一个窗口可以用命令ZZ或是:q.当然了CTRL_Wc也可以做到同样的事情。
我们打开一个窗口一般并不是要在两个窗口中显示同一个文件,我们常常需要的是在两个窗口中显示两个文件来加快文件编辑的工作。如何在新窗口中打开一个文件来进行编辑呢?我们可以用这样的命令::split file.这样我们就可以在另一个窗口中打开文件file开始我们的编辑工作了:)。
那么我们如何来控制窗口的大小呢?我们在输入split命令时可以带上一个参数,这个参数 也就指定了打开的窗口的大小。例如我们可以这样的输入::3 split file。这样我们就可 以在一个新窗口中打开文件file,而这个窗口的大小有三行。当然我们也可以将这个命令中的空格去掉,也就是写成::3split file这样也可以达到同样的作用。
与split命令相类似的一个命令就是:new命令。所不同的就是split命令打开一个新窗口,但是在两个窗口中显示同一个文件,而new命令则是打开一个新窗口开始一个新文件的编辑.我们还可以打开一个新窗口,在这个窗口中打开一个文件来读。命令为:sview。这个命令是:split和:view这两个命令的组合。
在这样的多文本窗口中进行操作时我们常做一个工作就是要改变窗口的大小。可以使我们来改变窗口大小的命令为:
CTRL_W+这个命令增大窗口,默认增量为1
CTRL_W-这个命令减小窗口,默认值为1
CTRL_W=这个命令可以将几个窗口的大小变得相等。
另外还有一个命令countCTRL_W_可以使得当前窗口变得count这样的高。如果没有指定count将会使得当前窗口变得尽可能的最大。
:buffers
这个命令就会列出当前的编辑中所有的缓冲区状态。在这个状态列表中,前面的数字就是缓冲区的数字标记,第二个标记就是缓冲区当前的状态,而后一个则表明与空上缓冲区所关联的文件名。他的一些状态是这样的:
- 非活动的缓冲区(Inactive Buffer)
h 隐藏的缓冲区(Buffer is hidden)
% 当前的缓冲区(current buffer)
# 交换缓冲区(Alternate buffer)
+ 文件已经被修改
如果我们要选择一个缓冲区我们可以用这样的命令::buffer number
number就是缓冲区状态列表中所显示出来的数字。我们也可以用文件名字来选择缓冲区:
:buffer file
关于缓冲区有一些有用的命令可以快速的完成我们的工作:
我们可以用下面的命令来分割当前的窗口开始编辑一个缓冲区:
:sbuffer number
如果我们指明了数字,那么当前窗口就会显示数字所标记的那缓冲区中的内容,而如果没有指明数字,那么就会利用当前的缓冲区。当然这个命令我们也可以用文件名来做为参数进行操作。
对于缓冲区还有一些其他相关的命令:
:bnext 到下一个缓冲区
:count bnext 到下一个缓冲区执行count次
:count sbnext 命令:split 和 :count bnext组合形成的命令
:count bprevious 到前一个缓冲区count次
:count sbprevious
:count bNext 与:bprevious作用相同
:blast 到最后一个缓冲区
:brewind 到第一个缓冲区