我想在 vimperator 中定义一个自定义的扩展提示:
- 匹配正则表达式模式
- 与脚本匹配的 feed 如下:~/bin/script regex-match-as-arg
我应该从哪里开始解决这个问题?vimperator 是否有“vimperator-script”功能可以解决这个问题?
谢谢。
答案1
一些提示(并非双关语)。
增加新的扩展提示模式:
- 您可以使用函数定义模式
hints.addMode
。 - 您可以使用选项设置要添加提示的模式
eht
,该选项采用 XPath 选择器。(在 Pentadactyl 中,您还可以使用 CSS 选择器,但我不确定 Vimperator 是否可以使用 - 帮助页面中没有提及它们)
下面是我使用的一个简单的例子吉所网跳转到使用 的汉字信息页面;k。
js set eht+=[k]:span[class=text]
hints.addMode('k','open kanji details',function(e) { liberator.open(decodeURIComponent("http://jisho.org/search/" + e.textContent + "%2523kanji")); });
匹配正则表达式:
我不确定 Vimperator 使用的是 XPath 1.0 还是 2.0,甚至不知道它是否允许使用 XPath 表达式的全部功能。我自己只尝试过非常简单的表达式。XPath 1.0 不允许使用正则表达式(因此您必须使用它提供的功能)。但是,XPath 2.0 允许使用正则表达式。正则表达式支持。 那么你可能能够使用它们。(我想自己研究一下这个问题。)
启动脚本:
您可以使用:!
命令执行此操作。可以使用从 JS 启动任意“ex”命令liberator.execute()
,因此要启动 shell 脚本,您可以将如下函数传递到hints.addMode
:
function(e) { liberator.execute("!~/bin/script " + e.textContent) }
关于 Pentadactyl 的注释。
这里的所有内容同样适用于 Pentadactyl,除了在 JS API 中,你必须用liberator
替换dactyl
。
稍后我会尝试再看一下这个问题。