このページでは FSF Emacs、XEmacs などの Emacsen 上で MaTX プログラム入力を支援するための Major mode パッケージ を公開しています。
MaTXとは九州工業大学の 古賀先生 が開発された制御系記述言語です。制御系を記述する際の行列の演算や 制御を行う際の各種アルゴリズムが実装されています。詳細は Web ページを 見てください。
matx-mode-2.18.el バージョン 2.18 EMACS 22.1 (CC-mode 5.31)用
matx-mode-2.17.el バージョン 2.17 EMACS 20.7 XEmacs 20.4 Meadow 1.10用 (CC-mode 5.26から5.30)
清田さんの開発されていた バージョン1系 (Emacs 19, Mule 用) は MaTX の ftp サイト よりダウンロードしてください。
matx-mode.el は以下のシステムにて動作します。下記要件を満たさない場合 は適宜バージョンアップを行ってください。
| Emacsen | FSF Emacs 20.7 以降 |
| XEmacs 20.4 以降 | |
| Meadow 1.10 以降 | |
| CC Mode | 5.25 以上 (FSF Emacs の場合は 5.26以上) |
CC Mode のバージョンは Emacsen 上で適当な C ファイルを読み込んだ 後、 M-x c-version と入力することにより確認できます。
以下のドキュメントでは ${EMACS} を使用している Emacsen のコマンド (emacs, xemacs, meadowNT など) に置き換えてください。
ダウンロードしたファイルをバイトコンパイルします。ファイル名をmatx-mode.el とした上でバイ トコンパイルすることにより、matx-mode.elc ファイルが作成されます。
${EMACS} -q -batch -f batch-byte-compile matx-mode.el
load-path の通ったディレクトリ ${DESTDIR} に matx-mode.elc を配 置します。
cp matx-mode.elc ${DESTDIR}
load-path の通ったディレクトリは Emacsen を何も引数なしで起動した時に 表示される scratch バッファで load-path と記述し、その直後に C-j をタ イプすると表示されます。
もし、root 権限が無くて、load-path のディレクトリにファイルを書 き込めない場合は、適当なディレクトリに配置した上、Emacsen の起動 時に読み込まれる設定ファイル (FSF Emacs の場合は ~/.emacs.el, XEmacs の場合は ~/.xemacs/init.el に load-path 追加の設定を加え てください。下記は ~/lisp/ というディレクトリを load-path に加え る際に起動ファイルに加える内容の一例です。
(setq load-path (cons "~/lisp" load-path))
MaTX のソースファイル .mm ファイルを開いた時に matx-mode となるように 設定ファイルを編集し、下記のエントリを加えてください。
(require 'matx-mode)
(autoload 'matx-mode "matx-mode" "Major mode for editing files of MaTX mm files." t)
(setq auto-mode-alist (cons' ("\\.mm$" . matx-mode) auto-mode-alist))
使用している Emacsen を再起動してください。以上で、.mm ファイルを読み 込んだ時に自動的に matx-mode になります。もし色が付かない場合は 起動時に読み込まれる設定ファイルに下記エントリを加えてください。
(font-lock-mode t)
上記より.mm ファイルを開くと 、Major mode が matx-mode になり、 予約語がカラー表示がされます。
matx-mode には以下の入力支援の関数があります。ショートカットキーは 通常の Emacsen の記述の通り M- は Escape キー、 C- は Control キーを 表します。
| ショートカットキー | 関数名 | 説明 |
|---|---|---|
| M-C-a | matx-beginning-of-defun | MaTX の関数の最初 (Funcの記述) に移動する |
| M-C-e | matx-end-of-defun | MaTX の関数の最後に移動する |
| C-c C-q | matx-indent-defun | MaTX の関数を整形する(matx-beginning-of-defun から matx-end-of-defun まで) |
| C-c C-b | matx-submit-bug-report | バグレポートを送る |
| C-cil | matx-send-line-to-matx | (experimental) 現在の行を MaTX インタープリタに実行させる |
| C-cir | matx-send-region-to-matx | (experimental) 現在選択中の領域 (region) を MaTX インタープリタに実行させる |
| C-cib | matx-send-buffer-file-to-matx | (experimental) 現在編集中のバッファの内容を MaTX インタープリタに実行させる |
| C-cif | matx-send-file-to-matx | (experimental) ファイルを MaTX インタープリタに実行させる |
| C-cco | matx-make-object-file | (experimental) ファイルを MaTX コンパイラに渡し、オブジェクトファイル (.o) を作成する |
| C-ccc | matx-make-c-file | (experimental) ファイルを MaTX コンパイラに渡し、Cファイル (.c) を作成する |
| C-ccs | matx-compiler-set-options | (experimental) matx-make-object-file, matx-make-c-file を実行する 際に MaTX に渡すオプションを指定する |
CC Mode の関数も利用可能です。詳細は CC Mode のマニュアルを読んでください。
谷口 康明