如何暂时禁用 Vimperator?例如,我想在使用网络电子邮件应用程序时暂时禁用 Vimperator。有命令吗?
5 回答
使用Shift+Esc暂时禁用 Vimperator。再次按下它以使其工作
我猜你已经知道 Shift-Esc 可以暂时禁用 vimperator。所以我写了如何根据您当前的位置禁用 vimperator。
一、解决办法:
autocmd LocationChange .* js modes.passAllKeys = false
autocmd LocationChange mail\\.google\\.com js modes.passAllKeys = true
autocmd LocationChange www\\.google\\.com/calendar js modes.passAllKeys = true
autocmd LocationChange www\\.google\\.com/reader js modes.passAllKeys = true
autocmd LocationChange mail\\.google\\.com/tasks js modes.passAllKeys = false
这会过滤 gMail、gCalendar、gReader,但不会过滤 gTask。
我给出的解决方案是级联方法,您可以定义所有网站以启用 vimperator,然后选择性地为每个网站禁用。因此,即使 gTask 使用与 gmail 相同的父站点,它也启用了 vimperator。
现在解释:
这些命令位于主目录中的 .vimperatorrc 中。您可以通过以下方式更改 .vimperatorrc 的位置
source! *directory*
在 .vimperatorrc 文件中,但默认位置是主目录中的 .vimperatorrc 文件。(Windows 中的 %userprofile%)
替代解决方案:
autocmd LocationChange .* js modes.passAllKeys = /mail\.google\.com/.test(buffer.URL)
*注意反斜杠转义点。
这种方法的问题是只有带有 autocmd 的最新命令行才能起作用。这意味着最后一个 autocmd 命令会覆盖第一个。所以你最终会导致对命令进行布尔运算,如下所示:
autocmd LocationChange .* js modes.passAllKeys = /(mail\.google\.com|google\.com\/reader)/.test(buffer.URL)
如您所见,当您有许多要过滤的网站时,这可能会变得复杂。
文档:
http: //vimperator.sourceforge.net/help/vimperator/autocommands.xhtml
解决方案来源:
http ://code.google.com/p/vimperator-labs/issues/detail?id=406
你可以使用 :ignorekeys 命令
ignorekeys add mail.yahoo.com
ignorekeys add mail.google.com
在这些域上禁用所有 vimperator 键绑定。
您可以通过 feedSomeKeys(Vimperator 的插件)使用gmail /feedly的键盘快捷方式。
如何?
使用autocmd 解决方案,每次出现“Executing LocationChange Auto commands for ...”消息时可能会很烦人。
在最新版本的 vimperator (3.8.3) 中,默认情况下不显示此消息,仅在详细模式下显示。
但是目前Firefox Addons的版本是3.8.2,所以我们需要手动安装。简单如:
git clone https://github.com/vimperator/vimperator-labs.git .
make xpi
downloads
然后从目录安装 vimperator 。