Vim窗口

    技术2024-04-15  15

    打开一个新窗口

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

    :split   :sp

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

    通过

    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   行数   +) 

    行数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

    更多关于switchbuf的内容参见23章。

    最新回复(0)