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