EmacsでGAMSのプログラミングをするのに便利なツール

エディタのEmacsでGAMSのプログラミングをするのに便利なマクロやコマンドを紹介します。


GAMS mode

  • GAMS用のEmacsのマクロ。まずこれ。詳しいことはここを参照。


Ediff mode

  • プログラムの差分(変更箇所)を表示するためのマクロ。diffのインターフェイス
  • テキストファイルの比較(差分をとるツール)で紹介したもの。
  • 同じようなプログラムをいくつも書く人、他人とプログラムのやりとりをするような人は、プログラムに加えられた細かい変更点をチェックするという作業が必要になると思います。Ediffを使うことでその作業の能率を高めることができます。
  • というか、プログラムを目で見て比較するなんてそんなの無理ですから、プログラムを書く際の必須のツールだと思います。


Org mode

  • これはGAMSのプログラミングとは直接は関係ないです。
  • メモをとるためのマクロです。Emacsに付属しています。
  • プログラムの変更点についてのメモやTODOリストを作成するのに利用しています。


Calc

  • これもGAMSのプログラミングとは直接は関係ないです。
  • 計算を行うためのマクロ。これもEmacsデフォールトで付属しています。ちょっとした計算をするのにはCalcを利用した方がずっと早いです。
  • 逆ポーランド記法で記述します(普通の中置記法でも使えますが)。
  • 使い方が少しとっつきにくいですが、インフォのチュートリアルを一度読みさえすればだいたいわかります。


CMD mode

  • DOSのバッチファイルを編集するためのモード。
  • バッチファイルからGAMSを実行している人には便利だと思います。


autoinsert

  • これはファイルのテンプレートを挿入するためのマクロ。Emacsに付属しています。
  • GAMS用(gmsファイル)のテンプレートも追加できます。


windows.el

  • 複数のウィンドウ(Emacs用語ではフレーム)を同時に使い分けるためのマクロ。
  • 作業状態を保存しておく機能もついています。


ripgrep

  • 名前の通りEmacsからripgrepを使うためのマクロ。
  • ripgrepと同じような機能のものとして grep がありますが、1)ripgrepの方が高速、2)再帰的な検索も可能ということでripgrepの方がよいと思います。


dabbrev-expand

  • これは単なるコマンドです。ものすごく便利。私は以下の設定ででC-oに割り当ててます。
    (global-set-key "\C-o" 'dabbrev-expand)


キーボードマクロ

  • これも単なるコマンド。
  • 同じ処理を何回も繰り返すときに便利。エクセルの「マクロの記録」と同じようなものです。
  • 以下の設定で"C-(" & "C-)" でマクロを記録、"M-o" で呼び出しています。
    (global-set-key "\M-o" 'call-last-kbd-macro)


矩形処理

  • これも単なるコマンドの話。
  • 矩形処理のためのコマンド。GAMSのプログラミングするのにやはり非常に便利。
  • よく使うのは、"C-xrk"の矩形での切り取り、"C-xry"の矩形での貼り付け。


ESS

  • これも直接はGAMSとは関係なし。
  • Emacsで、R等の統計用ソフトを利用するためのマクロです。