![在选项卡中一次打开多个文件并在 Vim 中拆分](https://linux22.com/image/1262004/%E5%9C%A8%E9%80%89%E9%A1%B9%E5%8D%A1%E4%B8%AD%E4%B8%80%E6%AC%A1%E6%89%93%E2%80%8B%E2%80%8B%E5%BC%80%E5%A4%9A%E4%B8%AA%E6%96%87%E4%BB%B6%E5%B9%B6%E5%9C%A8%20Vim%20%E4%B8%AD%E6%8B%86%E5%88%86.png)
我想知道,如果我已经在 Vim 中用垂直分割打开了两个文件,但我想在额外的选项卡中打开另外两个文件并在垂直窗口中分割这两个文件,我该怎么做?
我知道我能做到:
:tabnew file1
:vsp file2
有没有办法用一行完成?
答案1
我不确定这是你要找的,但它只有一行:
:tabnew file1 | vsp file2
看
:help :bar
答案2
我刚刚发现了一种类似的方法,使用命令行管道,但我认为它更加强大:
:tabnew | args views/* | vertical all
这将打开一个新选项卡,然后加载目录中的所有文件。我们可以指定单独的文件,views
而不是将 glob 传递给。将窗格拆分为单独的垂直窗口,这是我更喜欢的。告诉它使用传递的所有文件。args
vertical
all
args
答案3
当您说“在一行中”时,我怀疑您不只是在谈论使用竖线字符|
代替换行符。相反,我怀疑您正在寻找一种更短的方式来执行您的任务。
您可以将现有的建议组合成用户定义的命令(参见help :command
)。用户定义的命令必须以大写字母开头。
例如,如果您是 C++ 程序员,您可能喜欢打开一个新选项卡,其中并排显示实现和头文件。此时,您可以在 中定义如下命令.vimrc
:
:command -nargs=1 -complete=file Tabv tabe <args>H | vs <args>C
可以这样使用:
:Tabv Foo
Foo.C
在左侧打开,Foo.H
在右侧打开新选项卡。
如果您的典型用例不是这么具体,那么保存按键可能会更加困难。由于您是在 SU 而不是 SO 上提出这个问题,所以也许您不是程序员,但希望您可以调整此建议以满足您的需求。
答案4
受到TTM的评论的启发,我在这里提出两点看法(在一个选项卡.c
中打开所有文件src
,在另一个选项卡中打开所有.h
文件inc
):
:argadd | :tabnew | args src/* | :argadd | :tabnew | args inc/*