如何在新选项卡中打开文件或缓冲区而不离开当前选项卡且无需切换编辑模式?

Don*_*ion 2 vim

必须有一种方法可以在后台打开新选项卡,而无需离开当前选项卡,但我只是在文档中找不到它。

场景:用户 Bob 正在处理文件:foo.txt。外部程序定期更新文件bar.txt然后,它会在 Bob 的 vim 会话后台打开一个新选项卡,而不会强制 Bob 从前台foo.txt选项卡中当前的编辑状态切换出去。

所有tab*命令似乎都不起作用。我缺少什么?

你可以说我正在寻找相当于 : 的东西tabnew_in_background_leave_edit_mode_as_is()

rom*_*inl 5

您可以使用

$ vim --servername BOB --remote-tab +":tabprevious" filename
Run Code Online (Sandbox Code Playgroud)

编辑

Vim 没有在后台打开选项卡的命令。这就是为什么我们需要:tabprevious打开新选项卡并立即返回上一个选项卡的技巧。缺点是我们不再处于插入模式。

幸运的是,我们有gi,正常模式映射用于返回到上次退出的插入模式。这个命令在这里有效:

$ vim --servername BOB --remote-tab +":tabprevious" filename && vim --servername BOB --remote-send "gi"
Run Code Online (Sandbox Code Playgroud)

在 shell 脚本中包含并概括它听起来并不复杂。

这是第二种方法,使用相同的成分但以不同的方式组合:

$ vim --servername BOB --remote-send "<Esc>:tabe filename | tabprevious<CR>gi"
Run Code Online (Sandbox Code Playgroud)

基本上,我们退出插入模式,执行“选项卡”业务并返回到原来的位置。我们还有另一个缺点:此方法与插入模式相关,因此即使我们之前不存在,我们最终也会进入插入模式。

不幸的是,我没有找到一种不涉及编写函数的干净方法。