什么:q1在Vim中做什么?

时间:2018-02-12 23:18:00

标签: vim

我刚注意到输入:q1会关闭我目前打开的文件(我通过拼写错误:q!找到了这个)

基于2dd(删除两行)或2j(向下移动两行)等命令,我希望:2q能够“退出两个文件”(但是,如果我使用vi -O testfile1 testfile2打开两个文件,:2q仅 关闭其中一个文件 - :q2}也是如此。

:q之后的数字是否被丢弃?或者它是否有一些我无法确定的效果?

而且,更一般地说 - 我怎么能为自己回答这个问题?我在Vim帮助中检查了usr_21.txt| Go away and come back,但没有发现这种行为。我甚至检查了famous question,但没有人提到过这个问题。

1 个答案:

答案 0 :(得分:14)

带有数字的q命令将关闭该位置的给定拆分。

:q<split position>:<split position>q将关闭该位置的拆分。

让我们说你的vim窗口布局如下:

-------------------------------------------------
|               |               |               |
-------------------------------------------------
|               |               |               |
|               |               |               |
|    Split 1    |    Split 2    |     Split 3   |
|               |               |               |
-------------------------------------------------

如果您运行q1命令,它将关闭第一次拆分。 q2将关闭第二次拆分,反之亦然。

quit命令中拆分位置的顺序无关紧要。 :2q:q2将关闭第二次拆分。

如果传递给命令的分割位置大于当前分割的数量,它将只关闭最后一个分割。

例如,如果您在上面的窗口设置中运行q100,其中只有3个拆分,它将关闭最后一个拆分(拆分3)。

这是vim文档中列出的内容。您可以通过键入:help :close找到文档,然后向上滚动以找到Closing a window部分。

If [count] is greater than the last window number the last
window will be closed:
¦ ¦ :1quit  " quit the first window
¦ ¦ :$quit  " quit the last window
¦ ¦ :9quit  " quit the last window
     " if there are fewer than 9 windows opened
¦ ¦ :-quit  " quit the previous window
¦ ¦ :+quit  " quit the next window
¦ ¦ :+2quit " quit the second next window