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