必须有一种方法可以在后台打开新选项卡,而无需离开当前选项卡,但我只是在文档中找不到它。
场景:用户 Bob 正在处理文件:foo.txt。外部程序定期更新文件bar.txt。然后,它会在 Bob 的 vim 会话后台打开一个新选项卡,而不会强制 Bob 从前台foo.txt选项卡中当前的编辑状态切换出去。
所有tab*命令似乎都不起作用。我缺少什么?
你可以说我正在寻找相当于 : 的东西tabnew_in_background_leave_edit_mode_as_is()。
您可以使用
$ 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)
基本上,我们退出插入模式,执行“选项卡”业务并返回到原来的位置。我们还有另一个缺点:此方法与插入模式相关,因此即使我们之前不存在,我们最终也会进入插入模式。
不幸的是,我没有找到一种不涉及编写函数的干净方法。
| 归档时间: |
|
| 查看次数: |
979 次 |
| 最近记录: |