Вы должны знать, что начиная с версии R2009a EmacsLink был удален из Matlab, поэтому я бы сказал, что на данный момент Matlab-Emacs является лучшей альтернативой. Основным преимуществом EmacsLink была тесная интеграция с Matlab, особенно при использовании отладчика, но текущая версия Matlab-Emacs вполне способна и, вероятно, удовлетворит потребности большинства людей так же, как и EmacsLink.
Для вызова Emacs из Matlab самое чистое решение - запустить сервер Emacs (M-x server-start). Затем можно настроить команду edit (), чтобы открыть скрипт в Emacs. Подробные инструкции о том, как это сделать, а также о запуске matlab-shell как низшего процесса приведены здесь:
http://blogs.mathworks.com/desktop/2009/09/14/matlab-emacs-integration-is-back/
Относительно проверки CVS: modulename является "matlab-emacs". Раньше вы могли загружать архив и просто распаковывать его в свой каталог elisp.
РЕДАКТИРОВАТЬ: Я решил переустановить Matlab-Emacs; вот пошаговое из того, что я сделал. (Шаги довольно очевидны, но это может быть полезно, если посмотреть, как легко столкнуться с ошибкой компиляции или неправильно интерпретировать некоторые инструкции). Обратите внимание, что matlab-emacs не компилировался, пока я не переустановил CEDET.
Скачать CEDET с http://cedet.sourceforge.net/ (1.0pre7 в моем случае)
Распакуйте архив в ~ / .emacs.d / elisp / (теперь есть каталог ~ / .emacs.d / elisp / cedet-1.0pre7 /)
Скомпилируйте CEDET через make EMACS=/usr/bin/emacs
Находясь в ~ / .emacs.d / elisp, выполните проверку cvs:
cvs -z3 -d:pserver:anonymous@matlab-emacs.cvs.sourceforge.net:/cvsroot/matlab-emacs co -P matlab-emacs
Скомпилировать matlab-emacs через
make "LOADPATH=../cedet-1.0pre7/common ../cedet-1.0pre7/eieio ../cedet-1.0pre7/semantic/bovine/ ../cedet-1.0pre7/semantic/"
В идеале все должно компилироваться; Теперь пришло время редактировать файлы запуска: в .emacs добавить
(setq load-path (cons "~/.emacs.d/elisp/matlab-emacs/" load-path))
(load-library "matlab-load")
и в запуске matlab.m add
addpath('~/.emacs.d/elisp/matlab-emacs/toolbox','-begin');
rehash;
emacsinit;
Это должно сделать это! Запустите emacs и выполните M-x matlab-shell. Если редактирование foo.m не открывает foo.m в emacs, убедитесь, что сервер запущен (M-x server-start).
Чтобы быть наиболее продуктивным, вы, возможно, захотите выяснить, что работает для вас с точки зрения отправки команд из буфера редактирования в процесс Matlab (поэкспериментируйте с ярлыками в справке режима). Наконец, если вам нужно отладить что-либо, выполните dbstop in foo
, и когда вы запустите foo, вы можете либо использовать команды семейства dbstop (посмотреть их вверх), либо включить панель инструментов (Mx tool-bar-mode) и использовать кнопки там, чтобы управление точками останова, пошаговым выполнением, продолжением и т. д. По завершении введите dbquit.
К сожалению, если вы работаете в Windows, matlab-shell не подходит (что немного удивительно, если посмотреть, как я могу запускать практически все остальное под солнцем из командной строки - Mathematica, R, numpy ..) .) - поэтому ваши возможности для тесной интеграции в emacs / matlab несколько ограничены (если вы не возражаете против запуска старой версии matlab, которая поддерживает emacslink).