emacs 为什么找不到运行程序?

Posted llguanli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了emacs 为什么找不到运行程序?相关的知识,希望对你有一定的参考价值。

我记得前段时间有个朋友问我为什么在emacs中打不开matlab程序?明明在terminal下是能打开的,却在emacs中不行.

今天自己最终遇到了相似的问题,我今天安装racket 6.0.安装好后racket程序的运行路径为/usr/local/racket/bin

然后我将这个路径增加到PATH里了,在terminal环境下能打开


接下来安装Geiser,它是emacs下连接racket的一个插件,它的安装非常easy,我是把它编译后的文件放到~/.emacs.d/site-lisp/geiser下

然后在init.el增加下面行,我的配制文件见https://github.com/aborn/emacs.d

(load "~/.emacs.d/site-lisp/geiser/elisp/geiser-load")

然后用M-x?run-geiser ?发现找不到racket程序. 这时我在想应该emacs里并没实用到bash环境里的PATH,

不然为什么找不到?

上网找到了这两个链接 link1?和 ?link2?,这才发现emacs是运行路径是由变量exec-path决定的.

然后打开M-x ielm 查看exec-path发现内容例如以下:

exec-path
("/usr/local/sbin" "/usr/local/bin" "/usr/sbin" "/usr/bin" "/sbin" "/bin" "/usr/games" "/usr/local/games" "/usr/lib/emacs/24.3/i686-linux-gnu")

发现并没有?/usr/local/racket/bin

这种话,仅仅要我们在配制文件init.el里增加下面行,将路径/usr/local/racket/bin增加到exec-path里就能够了

(add-to-list ‘exec-path "/usr/local/racket/bin")

然后查看exec-path就有了

ELISP> exec-path
("/usr/local/racket/bin" "/usr/local/sbin" "/usr/local/bin" "/usr/sbin" "/usr/bin" "/sbin" "/bin" "/usr/games" "/usr/local/games" "/usr/lib/emacs/24.3/i686-linux-gnu")

然后运行M-x run-geiser就OK了

我的操作系统为Ubuntu 14.04 LTS

以上是关于emacs 为什么找不到运行程序?的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu 20.04 上的 Emacs 27.1 找不到任何字体

如果我找不到我的 emacs 初始化文件怎么办?

CentOS6.x之emacs安装配置编译

Kotlin 在片段中找不到按钮 ID,为啥?

找不到 Emacs shell 命令

java运行程序找不到main方法