当我使用 vim 时,我经常喜欢打开多个选项卡,并将头文件和 cpp 文件拆分在同一个选项卡上,以便它们并排并且易于相互关联。
:vsp通过在 vim 中使用和的组合可以轻松实现这一点:tabe,但是,我想要一种在打开 vim 之前从命令行执行此操作的方法,因为我通常有一个 shell 脚本来打开所有项目文件,这样我就不需要不必每次关闭会话时都执行此操作。
我知道vim 存在-o、-O和-p标志,但是,使用这些标志会以选项卡式或拆分模式打开所有文件。将它们组合起来并不能按照我想要的方式工作。我希望能够直接从命令行打开选项卡和拆分的混合。
关于如何实现这一目标有什么想法吗?
这个问题的关键是在你发现-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)
上面所有的例子都有相同的结果: