当前位置:  开发笔记 > 编程语言 > 正文

如何配置firefox在某些链接上运行emacsclientw?

如何解决《如何配置firefox在某些链接上运行emacsclientw?》经验,为你挑选了1个好方法。

我有一个Perl脚本,它会查找一堆日志文件,寻找"有趣"的行,对于一些有趣的定义.它生成一个HTML文件,该文件由一个表组成,该表的列是时间戳,文件名/亚麻布参考和"有趣"位.我喜欢做的是让文件名/ linenum成为一个实际的链接,在emacs中将光标放在该行号上.

emacsclientw会允许这样的事情(例如emacsclientw +60 foo.log),但我不知道要构建哪种URL/URI会让FireFox调用emacsclientw.原始HTML文件将是本地的,因此没有问题.

我应该以这种方式定义自己的MIME类型和钩子吗?

Firefox版本是3.5,我正在运行Windows,以防任何重要事项.谢谢!



1> p4bl0..:

转到about:configfirefox中的页面.添加一个新字符串:

network.protocol-handler.app.emacs

value:脚本的路径,该脚本在没有协议的情况下解析url(之后是什么emacs://),然后使用正确的参数调用emacsclient.

您不能只放置emacsclient的路径,因为协议之后的所有内容都作为一个arg传递给可执行文件,因此您+60 foo.log将成为以这种方式命名的新文件.

但你可以很容易地想象一下像是emacs:///path/to/your/file/LINENUM有一个小脚本删除最终的/和号码,并用号码和文件调用emacsclient :-)

编辑:我可以在bash中做到这一点,如果你想但我不知道如何使用Windows"shell"或其他任何名称.

EDIT2:我错了什么,协议是在arg字符串中传递给的!这是我刚刚为我制作的一个小bash脚本,BTW感谢你的想法:-D

#!/bin/bash
ARG=${1##emacs://}
LINE=${ARG##*/}
FILE=${ARG%/*}
if wmctrl -l | grep emacs@romuald &>/dev/null; then # if there's already an emacs frame
  ARG="" # then just open the file in the existing emacs frame
else
  ARG="-c" # else create a new frame
fi
emacsclient $ARG -n +$LINE "$FILE"
exit $?

network.protocol-handler.app.emacs在我的iceweasel(firefox)中/home/p4bl0/bin/ffemacsclient.它工作得很好!

是的,我的笔记本电脑的名字是romuald ^^.

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有