首页 > 代码库 > emacs 为什么找不到执行程序?
emacs 为什么找不到执行程序?
我记得前段时间有个朋友问我为什么在emacs中打不开matlab程序?明明在terminal下是能打开的,却在emacs中不行.
今天自己终于遇到了类似的问题,我今天安装racket 6.0.安装好后racket程序的执行路径为/usr/local/racket/bin
然后我将这个路径加入到PATH里了,在terminal环境下能打开
接下来安装Geiser,它是emacs下连接racket的一个插件,它的安装很简单,我是把它编译后的文件放到~/.emacs.d/site-lisp/geiser下
然后在init.el加入以下行,我的配制文件见https://github.com/aborn/ulitcs
(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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。