To isolate problems, it’s often good to run stock Emacs with matlab-mode:
# In /path/to/Emacs-MATLAB-Mode
make clean
make lisp # Build only. If you want to build and run tests remove the lisp target
# From anywhere
echo "% empty" > startup.m
M=/path/to/Emacs-MATLAB-Mode
env MATLABPATH= emacs -Q -L $M -l $M/matlab-autoload.el
# If you want to run a specific version of MATLAB, /matlab-install/bin/matlab:
env MATLABPATH= PATH=/matlab-install/bin:$PATH emacs -Q -L $M -l $M/matlab-autoload.el
# If you want to exercise org mode matlab code block evaluation
env MATLABPATH= PATH=/matlab-install/bin:$PATH emacs -Q -L $M -l $M/matlab-autoload.el "--eval=(customize-set-variable 'org-babel-load-languages '((matlab . t)))"Notice that we are creating an empty startup.m and removing the MATLABPATH environment variable. This ensures you are running MATLAB with an unaltered environment. Problems with the matlab-shell can occur when either MATLABPATH or startup.m is altering the behavior of MATLAB. Therefore, if you see problems, try running with an unaltered environment.
If you open *.m you will be using the matlab-mode from /path/to/Emacs-MATLAB-Mode.
To run MATLAB in Emacs:
If 'matlab' command is not on your path, M-x RET customize-variable RET matlab-shell-command RET and set it to /path/to/bin/matlab, then set for current session Next run matlab-shell which runs MATLAB within and Emacs buffer: M-x matlab-shell At the MATLAB prompt run some action, for example >> help ls
If you see problems with matlab-shell, it could be that you have MATLAB startup options or other environment issues which are adversely impacting matlab-shell. You can try customizing matlab-shell-command-switches, for example below we add -nosplash and -noFigureWindows which reduces the resource requires on MATLAB:
M-x RET customize-variable RET matlab-shell-command RET
and set for the current session to:
'("-nodesktop" "-nosplash" "-noFigureWindows")then M-x matlab-shell.
See MATLAB Startup and Shutdown for other options.
On Linux or Mac:
mkdir ~/test-home
env HOME=~/test-home emacswill run Emacs with a clean environment. Within Emacs, “~” will expand to /home/USER/test-home
and if test-home is empty, then ~/.emacs will not exist and you can create it. Likewise, M-x
package-install, etc. will install into /home/USER/test-home/.emacs.d.