Chinaunix首页 | 论坛 | 博客

分类: LINUX

2012-11-16 20:40:02

vim分割窗口
[url][/url]

 分割窗口
显示两个不同的文件;或者同时显示一个文件的两个不同地方;又或者并排比较两个文
件。这一切都可以通过分割窗口实现。
|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|
阅读(2059) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

最大行业软件2012-12-01 10:16:50

PTC Creo Elements/Pro 5.0 M070 Working for Win32-ISO 1DVD(最新多语言正式版包括简、繁体中文)

PTC Creo Elements/Pro 5.0 M070 Working for Win64-ISO 1DVD

PTC Creo Elements View (ex Product View) v10 F000 build 93 Pro Multilanguage Win32 1CD

PTC Creo Elements View (ex Product View) v10 F000 build 93 Pro Multilanguage Win64 1CD

 

PTC Pro/E WildFire+Pro/Mechancia 4.0 M110 Working for Win32-ISO 1DVD(最新多语言正式版包括简、繁体中文)

PTC Pro/E Wil