现在可以暂时禁用Vimperator吗?例如,当我使用网络电子邮件应用程序时,我想暂时禁用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命令将覆盖第一个命令。因此,最终将导致对命令进行 bool(boolean) 操作,如下所示:
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

10-07 13:44