Emacs での glsl-mode の導入


私はエディタとしてずっと Emacs を愛用しているので、シェーダを書くときにも Emacs の恩恵が得られると便利です。探してみると Emacs Lisp がありましたので、紹介します。

ちなみに下記では Windows 用の Emacs クローンの Meadow を例にしていますが、他の環境でも同様にすれば使えるはずです。

機能としては

  • シンタックスハイライト
  • インデント(TAB または C-M-\)
  • .vert ファイルと .frag ファイルの切り替え(S-lefttab あるいは ff-find-other-file)

があります。

ダウンロードと設定

まず、下記から Emacs Lisp をダウンロード(またはコピー & ペースト)します。
glsl-mode.el

そしたら次のような適当なディレクトリにファイルを保存します。(ついでに “emacs-lisp-byte-compile” などでバイトコンパイルしておくと良いと思います)
C:\meadow\packages\lisp\glsl-mode\glsl-mode.el

次に設定ファイル(~/.emacs.d/init.el) に次を加えます。

(autoload 'glsl-mode "glsl-mode" nil t)
(add-to-list 'auto-mode-alist '("\\.vert\\'" . glsl-mode))
(add-to-list 'auto-mode-alist '("\\.frag\\'" . glsl-mode))

こうすると .vert(頂点シェーダ)ファイルや .frag(フラグメントシェーダ)ファイルを読み込めば自動的に glsl-mode になります。

おまけ cg-mode

NVIDIA 系な方は Cg を利用している方もいるかと思います。 Cg にも cg-mode があるようなので、利用してみると良いかと思います。
cg-mode.el