Freewind @ Thoughtworks scala java javascript dart 工具 编程实践 月结 math python english [comments admin] [feed]

(2011-09-13) vim 9. 窗口操作(转载)

广告: 云梯:翻墙vpn (省10元) 土行孙:科研用户翻墙http proxy (有优惠)

打开一个新窗口

最简单的打开新窗口的方法是

:split

它把一个窗口分成两个,光标留在上面的那个窗口中。

通过

Ctrl-w+方向键

来在窗口间切换

比如

Ctrl-ww 或 Ctrl-w Ctrl-w

切换到下一个窗口;

Ctrl-wj 和 Ctrl-wk

分别切换到下一个窗口和上一个窗口。

要关闭窗口,用

:q 或 ZZ 或 Ctrl-wc

找开一个新窗口并在其中打开一个文件

:split 文件名

也可以给split命令分配一个初始命令,也就是说执行完split接着要做的

:split +命令 文件名

比如

:split +/printf three.c

命令会把当前窗口分成两个然后在上面的窗口中查找printf这个字符串。

控制窗口大小

如果给split命令指定一个参数,则表示新找开窗口的高度

比如

:3split alpha.c

打开一个高度为3的窗口并在其中打开alpha.c

:new命令

:new

命令用起来就跟split差不多,只有一点不同:new命令会在新窗口中新建一个文件,而split只是在新窗口中打开原窗口中的内容。

分割并查看(Split and View)

:sview

命令新建一个窗口并且其中的内容是只读的。

改变窗口大小

行数Ctrl-w+

把当前窗口高度增加"行数"行(如不指定行数,默认为1)

行数Ctrl-w-

把当前窗口高度减少"行数"行(如不指定行数,默认为1)

Ctrl-w=

让所有窗口一样高

行数Ctrl-w_

把当前窗口的高度设为"行数”,如不指定则把它最大化。

缓冲

Vim用缓冲来代表一个文件。当你在编缉一个文件时,只是在编缉它的缓冲。当你完成编辑保存时,Vim把缓冲中的内容保存进文件。当然,事情并不是这么简单。在Vim中设置的标记之类的也保存在缓冲中。你可以同时拥有多个缓冲,当你编辑多个文件时就是这样。当你想要一个Vim窗口,并且想编辑多个文件时,把这个窗口最大化是不管用的,因为这不是一个窗口,其它的窗口还是能看得见的。此时你可以把不编辑的缓冲隐藏(hide),用命令

:hide

一个缓冲有三种可能的状态:

活动:显示在屏幕上的窗口

隐藏:没有显示在屏幕上的在编辑的缓冲

不活动:缓冲没有在编辑,但是保存着它的信息

第三种状态需要多解释一下,当你编辑另一个文件时,当前文件的内容就没有用了。Vim就关掉它。但是它的一些其它信息可能还有用。(这一部分比较混乱,原文说得也不是很清楚,不懂也无所谓)

要查看缓冲的列表,用

:buffers

命令。输出的第一列是缓冲编号,第二列是状态,第三列是与缓冲对应的文件。

状态共且以下几种:

- 不活动的缓冲
   h 隐藏的缓冲
   % 当前缓冲
   # 其它缓冲
   + 文件被编辑而未保存

选择一个缓冲

:buffer 缓冲编号

如果你不知道缓冲的编号,可以用

:buffer 文件名

下面的命令分割窗品并编辑指定的缓冲

:sbuffer 缓冲编号

:sbuffer 文件名

还有很多关于缓冲的命令:

:bnext 去下一个缓冲
:count bnext 执行count次去下一个缓冲
:count sbnext 先分割窗口,然后执行:count bnext
:count bprevious 去上一个缓冲。如果指定了count,则执行count次
:count sbprevious 先分割窗口,然后执行:count bprevious
:count bNext 同:count bprevious
:count sbNext 同:count sbprevious
:blast 去最后一个缓冲
:sblast 先分割窗口再执行:blast
:brewind 去第一个窗口
:sbrewind 先分割窗口再执行:brewind
:bmodified count 去第count个编辑过的缓冲
:sbmodified count 等于:split加:bmodified

缓冲选项

通常当所有编辑一个文件的窗口都关掉后,这个窗口的缓冲就变成"不活动”,如果不想这样,可以设置

:set hidden

让它变成隐藏而不是不活动。

通常分割/缓冲相关的命令会分割当前窗口,但是也可以让Vim在已经有窗口打开所指定的缓冲时,切换到那个窗口而不是新建一个:

:set switchbuf=useopen
comments powered by Disqus