matlab-emacs執行matlab程式出錯.不能呼叫matlab命令列模式

weixin_34402090發表於2013-04-03

在linux的emacs環境下執行matlab程式,一般需要安裝以下三個程式,我是按照以下三個連結安裝的(其實CEDET在新版本的emacs中有,只要配製一下就行了):

CEDET matlab matlab-emacs

不過在安裝好matlab後記得把bin/matlab加入到環境變數,我的環境變數(這個怎麼加請看linux的書籍)如下:


我按照這個link配製matlab-emacs的時候,到達第4步matlab-shell就出問題,在emacs下總是調不出matlab的命令列模式,而出現如下錯誤提示:

 

Searching for program: no such file or directory, matlab

 

comint-send-string: Output file descriptor of MATLAB is closed


我想,我已經把matlab的可執行檔案加入到PATH了呀?為什麼會之樣呢,估計emacs中沒有搜尋到這個路徑,那隻能把它連結到/usr/bin,如下:

 

 

aborn@aborn-lisp ~> sudo ln -s /usr/matlab/bin/matlab /usr/bin/matlab


重新啟動emacs,開啟一個m檔案,C-c C-s執行它就行啦,如下:

 


附,我的matlab的配製如下(.emacs):

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;set matlab-emacs environment
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(add-to-list 'load-path "~/.emacs.d/matlab-emacs/matlab-emacs")   ;matlab.el path
(add-to-list 'load-path "/usr/matlab/bin/matlab")                 ; matlab path
(require 'matlab-load)
(autoload 'run-octave "octave-inf" nil t)                         ;special
(autoload 'matlab-mode "matlab" "Enter MATLAB mode." t)
(setq auto-mode-alist (cons '("\\.m\\'" . matlab-mode) auto-mode-alist))
(autoload 'matlab-shell "matlab" "Interactive MATLAB mode." t)

(setq matlab-indent-function-body t)    ; if you want function bodies indented
(setq matlab-verify-on-save-flag nil)   ; turn off auto-verify on save
(defun my-matlab-mode-hook ()
  (setq fill-column 76))		; where auto-fill should wrap
(add-hook 'matlab-mode-hook 'my-matlab-mode-hook)
(defun my-matlab-shell-mode-hook ()
  '())
(add-hook 'matlab-shell-mode-hook 'my-matlab-shell-mode-hook)
(global-font-lock-mode t)
					;  To get hilit19 support try adding:
(require 'tlc)
(autoload 'tlc-mode "tlc" "tlc Editing Mode" t)
(add-to-list 'auto-mode-alist '("\\.tlc$" . tlc-mode))
(setq tlc-indent-function t)


 


 

相關文章