【问题标题】:How to get Octave's plot to work under emacs?如何让 Octave 的情节在 emacs 下工作?
【发布时间】:2014-10-15 16:46:28
【问题描述】:

在终端窗口中使用 octave

x=1:10;
plot(x);

工作正常,生成一个可缩放的绘图窗口等。

在emacs下运行octave,出现绘图,但是绘图窗口被挂起,无法缩放。如果再次执行plot(x);,窗口就会消失。

我正在使用 Debian Jessie,带有 GNU Emacs 24.3.1 和 GNU Octave,版本 3.8.1。

为了让它工作,我必须制作一个 .octaverc 来设置提示。

$ cat ~/.octaverc
PS1(">> ")

【问题讨论】:

  • 您是否关注过“附录 H Emacs Octave 支持”gnu.org/software/octave/doc/interpreter/… ?在 octave 3.8.1 中,有一个内部函数 fltk_draw 可以保持绘图图形响应。这是通过在 octaves 命令行中注册 add_input_event_hook 来完成的。我不是 EMacs 用户,但我认为上面的链接解决了这个问题。
  • @Andy,这听起来像是一个重要的线索,但我找不到任何参考。能给个链接吗?
  • 上面的链接没有引导您进入手册的 HTML 页面吗?
  • @Andy 是的,但是那里没有任何用处。我的意思是指向这个 fltk_draw 函数的链接以及它用于保持绘图响应的用途。
  • 这个错误报告? bugs.archlinux.org/task/40269

标签: emacs plot octave


【解决方案1】:

问题似乎是由于 octave-mode 使用 no-line-editing 开关运行 octave 引起的。您可以从编译的 lisp 文件中破解它,一切正常!

在我的系统上:

cd /usr/share/emacs/24.4/lisp/progmodes
sudo vi octave.elc

直接在.elc文件中将--no-line-editing改为--line-editing

重新启动emacs,一切都会好起来的。

【讨论】:

  • 这是用低倍八度启动参数设置的,所以只需运行customize-variable,进行适当的更改并保存以备将来使用。无需编辑 emacs 字节码。
  • 此解决方案冻结 emacs 直到 octave 被杀死。
  • 找到了冻结emacs的原因,想必大家都没有想到。 Emacs 一直在循环等待 octave 打印提示。 Octave 确实打印了它,但 emacs 无法识别它,因为它 octave 没有以它开头。它以终端括号粘贴模式的 ANSI 转义序列开始,因为我的 readline 配置中有set enable-bracketed-paste on。可以从 readline 配置中删除它,或者在 emacs 中编辑提示正则表达式变量以修复冻结。
猜你喜欢
  • 2014-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多