|
|
vim分割窗口
|
|
来源:
ChinaUnix博客 作者:
ChinaUnix博客 发布时间:2007-01-01
|
|
Vim用户手册 - by Bram Moolenaar
译者:Nek_in
http://vimcdoc.sf.net
分割窗口
显示两个不同的文档;或同时显示一个文档的两个不同地方;又或并排比较两个文
件。这一切都能够通过分割窗口实现。
|08.1| 分割窗口
|08.2| 用另一个文档分割窗口
|08.3| 窗口大小
|08.4| 垂直分割
|08.5| 移动窗口
|08.6| 对任何窗口执行命令
|08.7| 用 vimdiff 显示区别
|08.8| 杂项
下一章:|usr_09.txt| 使用 GUI 版本
前一章:|usr_07.txt| 编辑多个文档
目录:|usr_toc.txt|
*08.1* 分割窗口
最简单的打开新窗口命令是如下:
:split
这个命令把屏幕分解成两个窗口并把光标置于上面的窗口中:
+----------------------------------+
|/* file one.c */ |
|~ |
|~ |
|one.c=============================|
|/* file one.c */ |
|~ |
|one.c=============================|
| |
+----------------------------------+
您能够看到显示同一个文档的两个窗口。带 "====" 的行是状态条,用来显示他上面的窗
口的信息。(在实际的屏幕上,状态条用反色显示)
这两个窗口允许您同时显示一个文档的两个部分。例如,您能够让上面的窗口显示
变量定义而下面的窗口显示使用这些变量的代码。
CTRL-W w 命令能够用于在窗口间跳转。假如您在上面的窗口,他会跳转到下面的窗口,
假如您在下面的窗口,他会跳转到上面的窗口。(CTRL-W CTRL-W 能够完成相同的功能
这是为了避免您有时按第二次的时候从 CTRL 键上缩手晚了。)
关 闭 窗 口
以下命令用于关闭窗口:
:close
实际上,任何退出编辑的命令都能够关闭窗口,象 ":quit" 和 "ZZ" 等。但 "close"
能够避免您在剩下一个窗口的时候不小心退出 Vim 了。
关 闭 所 有 其 他 窗 口
假如您已打开了一整套窗口,但现在只想编辑其中一个,如下命令能够完成这个功能:
:only
这个命令关闭除当前窗口外的任何窗口。假如要关闭的窗口中有一个没有存盘,Vim 会
显示一个错误信息,并且那个窗口不会被关闭。
*08.2* 用另一个文档分割窗口
下面命令打开另一个窗口并用该窗口编辑另一个指定的文档:
:split two.c
假如您在编辑 one.c,则命令执行的结果是:
+----------------------------------+
|/* file two.c */ |
|~ |
|~ |
|two.c=============================|
|/* file one.c */ |
|~ |
|one.c=============================|
| |
+----------------------------------+
要打开窗口编辑一个新文档,能够使用如下命令:
:new
您能够重复使用 ":split" 和 ":new" 命令建立任意多的窗口。
*08.3* 窗口大小
:split 命令能够接受个数前缀。假如指定了这个前缀,这个数将作为窗口的高度。例如
如下命令能够打开一个三行的窗口并编辑文档 alpha.c:
:3split alpha.c
对于已打开的窗口,您能够用有几种方法改变他的大小。假如您有鼠标,很简单:把
鼠标指针移到分割两个窗口的状态栏上,上下拖动即可。
要扩大窗口:
CTRL-W +
要缩小窗口:
CTRL-W -
这两个命令接受个数前缀用于指定扩大和缩小的行数。所以 "4 CTRL-W +" 会使窗口增
高4行。
要把一个窗口配置为指定的高度,能够用这个命令:
{height}CTRL-W _
就是先输入一个数值,然后输入 CTRL-W 和一个下划线(在美式英语键盘中就是 Shift
加上 "-")。
要把一个窗口扩展到尽可能大,能够使用无个数前缀的 CTRL-W _ 命令。
使 用 鼠 标
在 Vim 中,您能够用键盘很快完成很多工作。但很不幸,改变窗口大小要敲不少键。在
这种情况下,使用鼠标会更快一些。把鼠标指针移到状态条上,按住左键并拖动。状态
条会随之移动,这会使一个窗口更大一个更小。
选 项
'winheight' 选项配置最小的期望窗口高度而 'winminheight' 选项配置最小的 "硬性"
高度。
同样,'winwidth' 配置最小期望宽度而 'winminwidth' 配置为最小硬性宽度。
'equalalways' 选项使任何的窗口在关闭或打开新窗口的时候总保持相同大小。
*08.4* 垂直分割
":split"命令在当前窗口的上面建立窗口。要在窗口左边打开新窗口,用这个命令:
:vsplit
或
:vsplit two.c
这个命令的结果如下:
+--------------------------------------+
|/* file two.c */ |/* file one.c */ |
|~ |~ |
|~ |~ |
|~ |~ |
|two.c===============one.c=============|
| |
+--------------------------------------+
实际中,中间的竖线会以反色显示。这称为垂直分割线。他左右分割一个窗口。
更有一个 "vnew" 命令,用于打开一个垂直分割的新窗口。更有一种方法是:
:vertical new
"vertical" 命令能够放在任何分割窗口的命令的前面。这会在分割窗口的时候用垂直
分割取代水平分割。(假如命令不分割窗口,这个前缀不起作用)。
在 窗 口 间 跳 转
由于您能够用垂直分割和水平分割命令打开任意多的窗口,您就能够任意配置窗口的布局。
接着,您能够用下面的命令在窗口之间跳转:
CTRL-W h 跳转到左边的窗口
CTRL-W j 跳转到下面的窗口
CTRL-W k 跳转到上面的窗口
CTRL-W l 跳转到右边的窗口
CTRL-W t 跳转到最顶上的窗口
CTRL-W b 跳转到最底下的窗口
您可能已注意到这里使用移动光标相同的命令用于跳转窗口。假如您喜欢,改用方向
键也行。
更有其他命令能够跳转到别的窗口,参见:|Q_wi|。
*08.5* 移动窗口
您已分割了一些窗口,但现在的位置不正确。这时,您需要一个命令用于移动窗口。
例如,您已打开了三个窗口,象这样:
+----------------------------------+
|/* file two.c */ |
|~ |
|~ |
|two.c=============================|
|/* file three.c */ |
|~ |
|~ |
|three.c===========================|
|/* file one.c */ |
|~ |
|one.c=============================|
| |
+----------------------------------+
显然,最后一个窗口应该在最上面。移动到那个窗口 (用 CTRL-W w)并输入如下命令:
CTRL-W K
这里使用大写的 K。这样窗口将被移到最上面。您能够注意到,这里有用 K 表示向上
移动了。
假如您用的是垂直分割,CTRL-W K 会使当前窗口移动到上面并扩展到整屏的宽度。
假设您的布局如下:
+-------------------------------------------+
|/* two.c */ |/* three.c */ |/* one.c */ |
|~ |~ |~ |
|~ |~ |~ |
|~ |~ |~ |
|~ |~ |~ |
|~ |~ |~ |
|two.c=========three.c=========one.c========|
| |
+-------------------------------------------+
当您在中间的窗口(three.c)中使用 CTRL-W K 后,结果会是:
+-------------------------------------------+
|/* three.c */ |
|~ |
|~ |
|three.c====================================|
|/* two.c */ |/* one.c */ |
|~ |~ |
|two.c==================one.c===============|
| |
+-------------------------------------------+
更有三个相似的命令(估计您已猜出来了):
CTRL-W H 把当前窗口移到最左边
CTRL-W J 把当前窗口移到最下边
CTRL-W L 把当前窗口移到最右边
*08.6* 对任何窗口执行命令
您打开了几个窗口,现在您想退出 Vim,您能够分别关闭每一个窗口。更快的方法是:
:qall
这表示 "quit all"(全部退出)。假如任何一个窗口没有存盘,Vim 都不会退出。同时
光标会自动跳到那个窗口,您能够用 ":write" 命令保存该文档或 ":quit!" 放弃修改。
假如您知道有窗口被改了,而您想全部保存,则执行如下命令:
:wall
这表示 "write all"(全部保存)。但实际上,他只会保存修改过的文档。Vim 知道保
存一个没有修改过的文档是没有意义的。
另外,更有 ":qall" 和 "wall" 的组合命令:
:wqall
这会保存任何修改过的文档并退出 Vim 。
最后,下面的命令由于退出 Vim 并放弃任何修改:
:qall!
注意,这个命令是不能撤消的。
为 所 有 的 参 数 打 开 窗 口
要让 Vim 为每个文档打开一个窗口,能够使用 "-o" 参数:
vim -o one.txt two.txt three.txt
这个结果会是:
+-------------------------------+
|file one.txt |
|~ |
|one.txt========================|
|file two.txt |
|~ |
|two.txt========================|
|file three.txt |
|~ |
|three.txt======================|
| |
+-------------------------------+
"-o" 参数用于垂直分割窗口。
假如 Vim 已启动了,能够使用 ":all" 命令为参数列表中的每个文档打开一个窗
口。":vertical all" 以垂直分割的方法打开窗口。
*08.7* 用 vimdiff 显示区别
有一种特别的启动 Vim 的方法能够用来显示两个文档的区别。让我们打开一个 "main.c"
并插入一些字符。在配置了 'backup' 选项的情况下保存这个文档,以便产生 "main.c~"
备份文档。
在命令行中输入如下命令:(不是在Vim中)
vimdiff main.c~ main.c
Vim 会用垂直分割的方式打开两个文档。您只能看到您修改过的地方和上下几行的地方。
VV VV
+-----------------------------------------+
|+ +--123 lines: /* a|+ +--123 lines: /* a|
本文来自ChinaUnix博客,假如查看原文请点:http://blog.chinaunix.net/u1/53672/showart_447346.html
(阅读次数:)
|
| 上一篇:mozilla-mplayer 下一篇:Opera字体发虚之我的终极解决办法 |
|
[ 收藏]
[ 推荐]
[ 评论(0条)]
[返回顶部] [打印本页]
[关闭窗口] |
|
|
| |
|
|
|