是否可以通过 vim 命令行中的分割和制表符组合打开多个文件?

Hos*_*woo 1 vim

当我使用 vim 时,我经常喜欢打开多个选项卡,并将头文件和 cpp 文件拆分在同一个选项卡上,以便它们并排并且易于相互关联。

:vsp通过在 vim 中使用和的组合可以轻松实现这一点:tabe,但是,我想要一种在打开 vim 之前从命令行执行此操作的方法,因为我通常有一个 shell 脚本来打开所有项目文件,这样我就不需要不必每次关闭会话时都执行此操作。

我知道vim 存在-o-O-p标志,但是,使用这些标志会以选项卡式或拆分模式打开所有文件。将它们组合起来并不能按照我想要的方式工作。我希望能够直接从命令行打开选项卡和拆分的混合。

关于如何实现这一目标有什么想法吗?

rom*_*inl 5

这个问题的关键是在你发现-o, -O, 和-p:的地方找到$ vim --help

-c <command>        Execute <command> after loading the first file
Run Code Online (Sandbox Code Playgroud)

这个想法是在 shell 中执行在 Vim 中手动执行的操作:

$ vim file1.cpp -c "vsplit file1.h" -c "tabedit file2.cpp" -c "vsplit file2.h"
Run Code Online (Sandbox Code Playgroud)

还有其他可能的方法,例如将所有这些命令放在一个脚本中并在启动时获取它:

" in myscript.vim
:vsplit file1.h
:tabedit file2.cpp
:vsplit file2.h

" in your shell
$ vim file1.cpp -S myscript.vim
Run Code Online (Sandbox Code Playgroud)

或者,您可以*.cpp使用选项卡页中的每个文件打开-p,然后循环它们以打开相应的标头:

vim -p file1.cpp file2.cpp -c "tabdo vsplit %<.h"
Run Code Online (Sandbox Code Playgroud)

上面所有的例子都有相同的结果:

例子