climacs-client — #:g1

Posted 2011-01-12 12:54:00 GMT

今年は、EmacsからClimacsというCommon Lisp+CLIM(Common Lisp Interface Manager)で実装されたEmacs系エディタに乗り換えようとあがいているのですが、なかなか機能が充実しているGNU Emacsの環境から移行するのは難しいです。
しかし、CLでなんでも書けるのは楽しいところ。このブログもClimacsからDrakma経由で投稿してみたりしています。
プログラミング用のエディタとしては、エディタの足りない機能を実装していたら本来作りたかったもののプログラミングに辿り着かないですが、それもまた楽しいです。
随時、設定などもこのブログに書いて行きたいと思っていますが、今回は、シェルからClimacsを呼ぶ方法を考えてみました。
Climacsは、シェルから通常のエディタのように起動させるには一捻り必要なようです。
イメージを実行可能なものとしてダンプしたり何通りかあると思いますが、今回は、StumpWMとClimacsを同一のイメージから起動させて、StumpWMのstumpishから起動する方法を書いてみます。
結構適当ですが、下のスクリプトのような感じになりました。with-climacsは@quekさんの作でClimacs外からclimacsの関数を呼び出す時に便利なマクロです。
- (http://read-eval-print.blogspot.com/2010/12/emacs-slime-climacs.html)

climacs-client

#!/bin/sh

FILE=$1

stumpish eval "(progn (esa-io::with-climacs (esa-io:com-find-file \"$FILE\"))(stumpwm::climacs))"

stumpishはevalでCLの式を評価できるので文字列として実行したい式を渡します。
式の内容ですが、
+ esa-io::com-find-fileでファイルを開き
+ stumpwm::climacsで画面をClimacsに遷移させる
という感じになっています。Climacsへの画面遷移は、StumpWMお馴染みのrun-or-raisです。
これをclimacs-clientのような名前にしてスクリプトにすれば、
$ climacs-client /tmp/foo.lisp
のように開けます。

comments powered by Disqus