我需要使用当前页面的 URL 作为通过 :! 执行的命令的参数。我不想用鼠标将其复制到那里或键入它。
有什么办法可以做到这一点?
我的目的是将此 URL 发送给 Emacts,该 URL 应自动插入到 Vimperator 中的命令行,然后我想在那里输入一些带有页面/标签描述的文本。
答案1
这可能不是实现此目的的最佳方法,但这是我使用过的一种解决方法。自动命令可以访问多个关键字(请参阅http://vimperator.org/help/vimperator/autocommands.xhtml),其中有关键字“url”。所以
:au PageLoad * :!echo "<url>" >/tmp/mycurrenturl
安装一个自动命令,将您的 URL 保存在您的脚本可以访问的临时文件中。
如果有人能发布更优雅的解决方案我将不胜感激。
答案2
使用 Vimperator 3.4 - 在用户定义的命令中 - 我使用当前缓冲区的 URL 如下:
command -nargs=0 <name> :execute "!echo " + content.location.href
这定义了用户命令:<name>
,它不带任何参数。它调用 Vimperator 命令,:execute
该命令接受一个字符串并执行它,就好像您是输入它的人一样。在本例中,它接受字符串"!echo " + content.location.href
。将其content.location.href
评估为 JavaScript 表达式(或类似的东西)并返回执行命令的页面的 URL。
执行:<name>
这页面输出以下内容(在短暂弹出终端窗口之后 - 在 Windows 7 上,使用 Cygwin 的 Bash 作为我的 shell):
http://superuser.com/questions/363654/vimperator-how-to-use-current-pages-url-as-shell-command-argument