在linux的emacs環境下執行matlab程式,一般需要安裝以下三個程式,我是按照以下三個連結安裝的(其實CEDET在新版本的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)