1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
|
#+startup: showall
#+options: toc:nil
# Copyright 2024 The MathWorks, Inc.
* Emacs MATLAB-mode
[[https://mathworks.com][MathWorks]] MATLAB® and [[https://www.gnu.org/software/emacs/][GNU Emacs]] integration:
1. matlab-mode for editing ~*.m~ files.
- Edit MATLAB code with syntax highlighting and smart indentation.
- Lint MATLAB code with fix-it's using the MATLAB Code Analyzer.
2. ~M-x matlab-shell~ for running and debugging MATLAB within Emacs (Unix-only).
- matlab-shell uses company-mode for completions.
3. MATLAB and [[http://orgmode.org]] for creation of scientific papers, theses, and documents.
- Org enables [[https://en.wikipedia.org/wiki/Literate_programming][literate programming]] which directly supports reproducible research by allowing
scientists and engineers to write code along with detailed explanations in natural language.
- You author code plus natural language descriptive text in ~*.org~ files. When you evaluate
MATLAB or other language code blocks within the ~*.org~ files, org inserts the results back
into the ~*.org~ file.
- You can combine multiple ~*.org~ files into one final document, thus enabling larger scientific
documents.
- See [[file:examples/matlab-and-org-mode][./examples/matlab-and-org-mode/]] to get started. This directory contains a [[file:examples/matlab-and-org-mode/matlab-and-org-mode.pdf][PDF]] generated from
[[file:examples/matlab-and-org-mode/matlab-and-org-mode.org][./examples/matlab-and-org-mode/matlab-and-org-mode.org]].
4. tlc-mode for editing ~*.tlc~ files. The Target Language Compiler (TLC) is part of Simulink® Coder™.
* Installation
** Install via MELPA
Installing via [[https://melpa.org][MELPA]] is recommended because MELPA will contain the latest validated release.
Add to your =~/.emacs=:
#+begin_src emacs-lisp
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
#+end_src
then run
: M-x RET package-list-packages RET
** Install from this repository
Build:
#+begin_src bash
cd /path/to/Emacs-MATLAB-mode
# Build lisp and run tests (requires MATLAB executable):
make
# Alternatively, build lisp and run tests using a specific MATLAB executable:
make MATLAB_EXE=/path/to/matlab
# If desired, you can separate the building of lisp and running tests using:
make lisp
make tests
make tests MATLAB_EXE=/path/to/matlab # if using a specific MATLAB executable
#+end_src
Add the following to your =~/.emacs= file:
#+begin_src emacs-lisp
(add-to-list 'load-path "/path/to/Emacs-MATLAB-mode")
(load-library "matlab-autoload")
#+end_src
* MathWorks Products ([[https://www.mathworks.com][https://www.mathworks.com]])
Emacs MATLAB-mode is designed to be compatible with the last six years of MathWorks products and may
support even older versions of MathWorks products.
* License
GPL3, https://www.gnu.org/licenses/gpl-3.0.en.html (see [[file:License.txt][License.txt]])
* Community Support
[[https://www.mathworks.com/matlabcentral][MATLAB Central]]
* FAQ
** How do I customize matlab-mode?
You can configure matlab-emacs using the "matlab" or "matlab-shell" customization groups:
: Emacs -> Options -> Customize Emacs -> Specific Group
** How do I customize "edit file.m" behavior?
By default when you run
#+begin_example
M-x matlab-shell
>> edit file.m
#+end_example
file.m will open in emacs using 'emacsclient -n'. matlab-shell achieve this behavior by instructing
MATLAB to use 'emacsclient -n' as the external text editor.
You can customize this by setting `matlab-shell-emacsclient-command' in the matlab-shell
customization group. You can change this command to what's appropriate. If you set it to the empty
string, 'edit file.m' will use the default MATLAB editor setting.
The default MATLAB editor setting is controlled in the MATLAB preferences, (e.g. R2018a Home tab,
Environment section, Preferences) where you can select which editor you want to edit a text
file. MATLAB Editor or an external text editor. If you always want to use Emacs as your matlab
editor even when running MATLAB outside of emacs, select Text editor and set it to the appropriate
'emacsclient -n' command.
** The code-sections are not highlighted properly. What do I do?
There can be several reasons for this. One reason would be if you are
using syntax highlighting from a different package (such as
tree-sitter) which is over-riding the font-lock provided by
matlab-mode.
In this case, add the following hook to your config:
#+begin_src emacs-lisp
(add-hook 'matlab-sections-mode-hook
(lambda () (interactive)
(font-lock-add-keywords
nil
`((,matlab-sections-section-break-regexp
1 'matlab-sections-section-break-face prepend)))
(font-lock-flush)))
#+end_src
Ensure that this is included after matlab-mode as well as your syntax
highlighter are initialized in your config.
* History
matlab-mode has a history dating back many years. Older contributions can be found in
[[https://sourceforge.net/projects/matlab-emacs/][https://sourceforge.net/projects/matlab-emacs/]].
# LocalWords: showall nodesktop melpa emacsclient
|