手动打开新标签页后如何触发 Vimperator 命令?

How to trigger a Vimperator command after manually openning a new tab?

我使用 Vimperator 已经有一段时间了,我真的很喜欢它,但是我的工作流程中有一个中断让我很困扰:

有时我会打开一个新标签页 "manually" 即使用 Ctrl+t 或者甚至点击 + 在最后一个选项卡旁边签名。我知道我可以使用 :tabopen 打开一个新选项卡,并为此创建了一个方便的映射,但有时我只是不使用它。

我的问题如下: 我在 .vimperatorrc 中设置了 set gui=nonavigation 所以当我打开一个标签时 "manually" 如果我忘记了键入 o 以使用 open 命令触发命令行,而不是直接键入 url 我得到了意想不到的结果,因为我键入 url 的键被简单地视为 vimperator输入。

所以我的问题是:使用Ctrl+t[=后是否可以触发vimperator命令33=] 或单击 + 标志?我的想法是在这两个事件之后自动键入 o,所以我直接在命令行中使用 open 命令来完成。

自从我写这个问题后,我改变了插件,现在使用 pentadactyl 而不是 vimperator,但我已经通过以下映射解决了这个问题,它应该适用于两者:

nmap <C-t> :tabopen<CR>o

这样 Ctrl+t 将打开新选项卡并触发 :open 命令。

这不是一个完美的解决方案,因为它不适用于使用 + 符号打开的选项卡,但它是一种解决方法。

Pentadactyl:通用解决方案

此解决方案适用于 Pentadactyl(我将在此处包括它,因为 Pentadactyl 属于 SO 上的 Vimperator 标签)。

应该 也可以在 Vimperator 上工作,但不能(至少在我的版本上),因为 Vimperator 有无可救药的错误。应该可以解决这些错误,但我尝试时没有找到方法。

无论如何,正确的方法是使用自动命令,只要加载 about:newtab url 就会执行。

  • 加载新标签页时开始:open命令:

    autocmd PageLoadPre about:newtab normal o
    
  • 加载或更改为新标签页时开始:open命令:

    autocmd LocationChange about:newtab normal o