VIM从入门到精通(分割窗口)

来源:互联网 发布:ubuntu卸载软件 编辑:程序博客网 时间:2024/06/06 09:37

同时显示两个不同的文件, 或者同时查看同一个文件的两个不同位置, 或者是同步显示两个文件的不同之处. 所有这些都可以通过分隔窗口的功能来实现.

 

一、分隔一个窗口
二、为另一个文件分隔出一个窗口
三、窗口大小
四、垂直分隔
五、移动窗口
六、针对所有窗口操作的命令

 

分割一个窗口最简单的方法就是输入命令:

:split

该命令将屏幕分为上下两个窗口并将光标定位在上面的窗口中,同时打开两个窗口可以让你查看同一文件的两个不同部分. 比如你可以让上面的窗口来显示一个程序中的变量声明部分, 下面的窗口是使用了这些变量的编码区.CTRL-W w命令可以切换当前活动窗口. 如果你在上面窗口, 它会把它带到下面. 如果你在下面的窗口, 同样的命令却是把你带到上面.(CTRL-W CTRL-W功能相同, 只不过你可以迟一点松开CTRL键)。

 

:close可以关闭窗口实际上, 任何退出文件编辑的命令象”:quit”和”ZZ”都会关闭窗口, 但是用”:close” 可以阻止你关闭最后一个Vim, 以免以意外地整个关闭了Vim. 如果你打开了一大堆窗口, 但现在你只想把重心放在其中一个上面,这时命令:only 就十分有用了. 它会关闭除当前窗口外的所有其它窗口. 如果这些窗口中有被修改过的, 你会得到一个错误信息, 同时那个窗口会被留下来.用 :split two.c 可以打开第二个窗口同时在新打开的窗口中开始编辑作为参数的文件.

 

:split”命令还可以接受一个参数. 如果指定了这个参数的话, 它将会作为新打开窗口的高度. 比如下面的命令就打开了一个高度为3行的新窗口并在其中编辑名为alpha.c的文件:

:3split alpha.c

CTRL-W + 增加当前窗口高度,CTRL-W - 减小当前窗口高度,这两个命令都可以接受一个命令记数, 用以一次将窗口的高度增减指定的行数. “4 CTRL-W +“将使当前窗口增加4行高度.

 

:split”命令创建的新窗口位于当前窗口之上. 要让新窗口出现在当前窗口的左边, 可以用命令:

:vsplit
或:
:vsplit two.c

同样有一个对应的”:vnew“命令, 用于垂直分隔窗口并在其中打开一个新的空缓冲区.

因为你可以以水平和垂直方向任意分隔窗口, 最终的窗口布局也会五花八门. 置身于众多的窗口你需要在里面来去自如:

  CTRL-W    h                  到左边的窗口
  CTRL-W    j                  到下面的窗口
   CTRL-W    k                  到上面的窗口
     CTRL-W    l                    到右边的窗口
CTRL-W    t                   到顶部窗口
CTRL-W    b                  到底部窗口

hljk是左右上下以字符为单位移动, CTRL-W hljk则是以窗口(W)为控制单位移动

 

如果你已经分隔出了几个窗口, 但对它们的位置不满意. 这时你需要一个命令来移动它们的相对位置. 比如说, 你已经有了下面三个窗口:

显然最后一个窗口本应在最上面. 转到该窗口(使用CTRL-W w)然后键入如下命令:

CTRL-W  K

这里使用的是大写的字母K. 命令的结果是将当前窗口向上提升了一次. 有没有注意到K又被用于向上移动.另外三个相似的命令是:

CTRL-W    H      向左移动窗口
CTRL-W    J      向下移动窗口
CTRL-W    L      向右移动窗口

 

在打开一大堆窗口的情况下要退出Vim, 你可以一个一个地关闭这些窗口. 还有另外一个专用的命令:

:qall

意思很明显” quit all “ 如果这些窗口中有被修改又没保存的,Vim 就不会退出. 光标也会自动被定位到该窗口中. 这样你可以用”:write“来保存修改, 或用”:quit!“放弃这些改动.如果你已经知道有窗口被修改了而且还没有保存, 可以用命令 :wall 来保存所有被修改的窗口. 命令意为”write all”. 但实际上, 它只会存盘那些改动过的. Vim很清楚重写一遍完全没有改变的文件毫无意义. :wqall 保存所有文件后退出。:qall! 放弃保存所有文件,强制退出.

本文固定链接: http://blogdaily.net/?p=57 | 孤独的风中一匹狼