Firefox 手动打开新选项卡后如何触发VimOperator命令?

Firefox 手动打开新选项卡后如何触发VimOperator命令?,firefox,firefox-addon,vimperator,Firefox,Firefox Addon,Vimperator,我已经使用VimOperator一段时间了,我对它非常满意,但我的工作流程中有一个中断,这让我感到困扰: 有时,我会“手动”打开一个新选项卡,即使用Ctrl+t,甚至单击最后一个选项卡旁边的+符号。我知道我可以用:tabopen打开一个新选项卡,我为此创建了一个方便的映射,但有时我就是不使用它 我的问题如下:我在我的中设置了set gui=nonavigation。vimperatorrc所以当我打开一个选项卡“手动”时如果我忘记键入o以使用open命令触发命令行,而是直接键入url,我会得到意

我已经使用VimOperator一段时间了,我对它非常满意,但我的工作流程中有一个中断,这让我感到困扰:

有时,我会“手动”打开一个新选项卡,即使用Ctrl+t,甚至单击最后一个选项卡旁边的
+
符号。我知道我可以用
:tabopen
打开一个新选项卡,我为此创建了一个方便的映射,但有时我就是不使用它

我的问题如下:我在我的
中设置了
set gui=nonavigation
。vimperatorrc
所以当我打开一个选项卡“手动”时如果我忘记键入
o
以使用
open
命令触发命令行,而是直接键入url,我会得到意外的结果,因为作为url键入的键被简单地视为vimperator输入


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

自从我写这个问题以来,我改变了plugin,现在使用pentadactyl而不是vimperator,但我已经解决了以下映射的问题,这些映射应该可以使用两者:

nmap <C-t> :tabopen<CR>o
nmap:tabopeno
这样,Ctrl+t将打开新选项卡并触发
:open
命令

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

Pentadactyl:一般解决方案 这个解决方案在Pentadactyl中工作(我将在这里包括它,因为Pentadactyl属于SO上的Vimperator标记)

它应该也能在Vimperator上工作,但不能(至少在我的版本上是这样),因为Vimperator的bug太多了。应该可以解决这些bug,但我在尝试时没有找到解决方法

无论如何,正确的方法是使用自动命令,它将在加载
about:newtab
url时执行

  • 开始
    :加载新选项卡页时打开
    命令:

    autocmd PageLoadPre about:newtab normal o
    
  • 开始
    :加载或更改到新选项卡页时打开
    命令:

    autocmd LocationChange about:newtab normal o 
    

回答得非常好,非常感谢!老实说,我已经忘记了这个问题,但我很高兴你给了我一个很好的方法。也正因为我很好奇,你能解释一下为什么在打开一个新选项卡(
CTRL+t
+
符号)时会触发autocmd,而在我使用
:winopen
时不会触发吗?这对我来说似乎很奇怪,因为
:winopen
打开的窗口中有一个
about:newtab
。@statox:我不知道为什么会发生这种情况。可能与窗口局部变量有关。在我的Pentadactyl中,自动命令在新窗口中工作,但在启动第一个选项卡时不工作,因此您可以使用命令
:winopen | open about:newtab
获得正确的行为。您可以将其映射到一个键或一个新命令(不允许您重新定义内置命令,尽管如果您跟踪将命令名映射到命令的数据结构,您可能可以使用JS绕过这一点。)我认为定义一个新命令的想法实际上相当不错。非常感谢你的回答。