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

标签 html firefox emacs

我有一个 Perl 脚本,它可以在一堆日志文件中寻找“有趣”的行,以获得一些有趣的定义。它生成一个 HTML 文件,该文件由一个表组成,该表的列是时间戳、文件名/行号引用和“有趣”位。我想做的是让文件名/行号成为一个实际链接,它将在 emacs 中将光标定位在该行号上来调出该文件。

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

我应该定义自己的 MIME 类型并以这种方式 Hook 吗?

Firefox 版本是 3.5,我运行的是 Windows,以防万一。谢谢!

最佳答案

在 firefox 中转到 about:config 页面。添加一个新字符串:

network.protocol-handler.app.emacs

值:脚本的路径,该脚本解析没有协议(protocol)的 url(emacs:// 之后的内容),然后使用适当的参数调用 emacsclient。

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

但是您可以很容易地想象像 emacs:///path/to/your/file/LINENUM 这样的东西,并有一个小脚本可以删除最后的/和数字,并使用数字和调用 emacsclient文件:-)

编辑:如果你愿意,我可以在 bash 中做到这一点,但我不知道如何使用 Windows“shell”或任何它被调用的东西来做到这一点。

EDIT2:我错了,协议(protocol)在 arg 字符串中传递给! 这是我刚为我制作的一个小 bash 脚本,顺便说一句,谢谢你的想法 :-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 $?

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

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

关于html - 如何配置 firefox 在某些链接上运行 emacsclientw?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1401776/

相关文章:

html - 使用动画调整大小时字体变形

javascript - 单击按钮删除计时器

css - 当在没有宽度的 float div 中 float 子项时,Chrome 和 Firefox 的渲染不同。

javascript - 使用内联 JavaScript 在 emacs 中缩进 html

javascript - 如何在jquery中对表的单列进行 block 排序

html - 无需表单发布即可触发 html5 验证

python - 抑制 Firefox 终端消息 Python/Linux

ajax - 为什么 javascript eval 在 chrome、safari 中可以工作,但只有在 firebug 打开时才能在 firefox 中工作?

c - 如何使用 makefile 调试项目

emacs - 如何强制组织模式下的 TAB 正确对齐普通列表?