必须有一种方法可以在后台打开一个新的标签,而不会离开当前的标签页,但我在文档中找不到它。
场景:用户Bob在文件上工作:foo.txt
。外部程序定期更新文件bar.txt
。然后,它会在Bob的vim会话的后台中打开一个新选项卡,而不会强制Bob在其前景选项卡中切换出他当前编辑的foo.txt
。< / p>
所有tab*
命令似乎都没有完成任务。我错过了什么?
你可以说我正在寻找相当于:tabnew_in_background_leave_edit_mode_as_is()
。
答案 0 :(得分:4)
您可以使用
$ vim --servername BOB --remote-tab +":tabprevious" filename
修改强> 的
Vim没有在后台打开标签的命令。这就是我们需要:tabprevious
技巧来打开新标签并立即返回上一个标签的原因。缺点是我们不再处于插入模式。
幸运的是,我们有gi
,正常模式映射用于返回上次退出的插入模式。此命令有效:
$ vim --servername BOB --remote-tab +":tabprevious" filename && vim --servername BOB --remote-send "gi"
在shell脚本中包含和概括它听起来并不复杂。
这是第二种方式,使用相同的成分,但组合方式不同:
$ vim --servername BOB --remote-send "<Esc>:tabe filename | tabprevious<CR>gi"
基本上,我们退出插入模式,执行我们的“标签”业务并回到原来的位置。而且我们还有另一个缺点:这个方法与插入模式有关,所以即使我们之前没有插入模式,我们也会以插入模式结束。
不幸的是,我没有找到一种干净利落的方法,不涉及编写函数。
答案 1 :(得分:0)
--remote-tab
了吗?或者我误解了你的问题?
在vim中,输入:h remote-tab
--remote-tab Like --remote but open each file in a new
tabpage.
所以你可以尝试:(假设你已经有一个名为“SVR”的vim“服务器”):
vim --servername SVR --remote-tab foo.txt
foo.txt
将在SVR
vim实例
答案 2 :(得分:0)
当光标位于目录列表中的文件名上时,按SHIFT + t可在后台选项卡中打开文件。