emacs為什麼找不到執行程式?

來源:互聯網
上載者:User

我記得前段時間有個朋友問我為什麼在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個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.