"`tabbed -d > /tmp/tabbed.xid`; vimprobable2 -e `cat /tmp/tabbed.xid`"
[1]
然后,我可以将 vimprobable 的所有新实例发送到其他应用程序(例如 mutt)中的选项卡式(并且不打开新的主窗口),方法是:
vimprobable2 -e $(cat /tmp/tabbed.xid) %s
我想在 Urxvt 中实现同样的目标。
目前我的.Xdefaults
包含匹配器参数:
URxvt.perl-ext-common: default,matcher
URxvt.urlLauncher: vimprobable2
URxvt.matcher.button: 1
我已更改启动器行以指向包装器脚本:
URxvt.urlLauncher: vimprobtab.sh
这只是:
vimprobable2 -e $(cat /tmp/tabbed.xid) %s &
但这只是在选项卡中打开一个浏览器实例,其中包含默认搜索引擎结果&
(或者%s
如果我删除&符号)。
我尝试过其他明显的变量,例如"$1"
and "$@"
- 它们也不起作用。
如何将 URL 传递给包装器脚本?
[1] 这也感觉像对猫的无用利用,因此欢迎提出其他建议
答案1
当使用资源中指定的鼠标按钮(默认为 2,或中间)单击时
matcher.button
,资源中指定的程序matcher.launcher
(默认,urlLauncher
资源,sensible-browser
)将启动,并将匹配的文本作为第一个参数。
因此,您需要设置URxvt.matcher.launcher
一个采用单个参数的脚本(在 sh 类型 shell 中,拼写为$1
)并打开它。例如:
#! /bin/sh
exec vimprobable2 -e $(cat /tmp/tabbed.xid) "$1"
笔记:建议引用$1
防止 shell 解释可能出现在 URL 中的元字符的参数(例如 或&
);
。