【问题标题】:clickable overlay in ansi-termansi-term中的可点击覆盖
【发布时间】:2017-10-30 10:56:16
【问题描述】:

我是julia-repl 包的作者,它在ansi-term 中运行了一个劣质的Julia REPL。由于颜色和终端交互,一个完整的终端是必要的。我需要一些帮助来扩展它以使错误位置“可点击”。

Julia 错误消息如下所示:

julia> Foo.foo()
ERROR: DomainError:
Stacktrace:
 [1] foo() at /tmp/Foo.jl:2

我想将/tmp/Foo.jl:2 设为“可点击”,以便用户单击鼠标即可将2/tmp/Foo.jl 对齐。

我开始阅读the relevant section of the Emacs manual,但需要一些帮助来实现这一点。特别是,

  1. 使用正则表达式查找这些文本 sn-ps 的最佳方法是什么?
  2. 如何在每次缓冲区更改时运行它?
  3. 我可以只在新输出上运行它吗?
  4. 如何将文件的特定行指定为目标?

我很乐意阅读和研究现有示例,但不知道从哪里开始。一个最小的例子会有很大帮助。

【问题讨论】:

  • 我建议查看执行此操作的模式的来源,例如 grep.el
  • 作为用户,我不确定是否需要基于完整终端仿真的解决方案。如果您的“终端交互”受到足够的限制,也许您应该考虑简单地添加对颜色的支持(它是单行的)以及对那些终端交互的comint(或替换)的支持。

标签: emacs ansi-term


【解决方案1】:

理想情况下,您应该使用compilation-shell-minor-mode 之类的东西。但我不确定它如何/是否可以在 ansi-term 缓冲区中工作。

【讨论】:

  • 谢谢!这正是我必须使用的。 10 行 emacs-lisp 和一些正则表达式解决了这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-15
  • 1970-01-01
相关资源
最近更新 更多