【问题标题】:Run Octave from Emacs on iMac在 iMac 上从 Emacs 运行 Octave
【发布时间】:2011-11-23 18:11:33
【问题描述】:
Octave 安装在我的 iMac 上 /applications 并且可以正常工作。
Emacs 安装在我的 iMac 上 /applications 并且可以进行文件编辑。
现在我想从 Emacs 运行 Octave。 M-xrun-octave 结果:
Searching for program: No such file or directory, octave
在 Windows 中,我通过将 Octave 添加到环境路径解决了这个问题,我如何在 Mac 上做到这一点?
提前致谢,Hans Sellmeijer
【问题讨论】:
标签:
emacs
osx-snow-leopard
octave
【解决方案1】:
这里有两种可能的解决方案:
-
通过在您的 shell 中键入 which octave 来查找实际的 Octave 可执行文件。例如,如果通过 Macports 安装,它位于 /opt/local/bin/octave。然后,在 Emacs 中,执行M-x customize-group RET octave-inferior RET,将Inferior Octave Program 的值编辑为此值并单击State > Save for Future Sessions。
或者,您可以在 Elisp 中执行此操作,方法是将以下内容放入您的 .emacs 或 init.el 文件(显然根据需要更改引用的部分):
(setq inferior-octave-program "/opt/local/bin/octave")
-
您可以像在 Windows 上一样将 octave 添加到 PATH 环境变量中,但是在 Mac OS X 下从 Finder 启动的 Emacs 不会获得您可能在 .bashrc 或类似中放入的任何环境设置。从终端窗口运行 Emacs,或者放入你的 .emacs:
(add-to-list 'exec-path "/opt/local/bin")
希望对您有所帮助。
【解决方案2】:
感谢 Jon,Emacs 可以在带有 Snow-Leopard 的 iMac 上正确处理 Octave。 “.emacs”文件包含:
(add-to-list 'exec-path "/applications/Octave.app/Contents/Resources/bin")
(autoload 'octave-mode "octave-mod" nil t)
(setq auto-mode-alist (cons '("\\.m$" . octave-mode) auto-mode-alist))
(add-hook 'octave-mode-hook (lambda () (abbrev-mode 1) (auto-fill-mode 1) (if (eq window-system 'x) (font-lock-mode 1))))
(autoload 'run-octave "octave-inf" nil t)
从 .PDF 手册中复制这些行时要小心。引号变形为转义序列,这削弱了正确使用。
【解决方案3】:
这就是我如何在我的 Mac (OS X 10.7.3) 上的 Emacs 中运行 Octave(包括绘图):
- 从源安装八度:
fink install octave。这也安装了 gnuplot 的所有依赖项,二进制分发似乎没有正确执行(至少,它对我不起作用)。唯一的缺点是在我的 MacBook Air 上完成安装需要几个小时。
- 在
.emacs 中自定义octave-inferior:(此列表中可能有更多变量):
(自定义设置变量
'(劣八度程序“/sw/bin/octave”)
'(inferior-octave-startup-args (quote ("-i")))