#:g1: climacsの紹介

Posted 2014-12-04 15:00:00 GMT

(LISP Library 365参加エントリ)

 LISP Library 365 の339日目です。

climacsとはなにか

 climacsは、Robert Strandh氏が中心となって開発されているCommon Lisp+CLIMで実装されたEmacs系エディタです。

パッケージ情報

パッケージ名climacs
Quicklisp
CLiKiCLiki: climacs
Quickdocsclimacs | Quickdocs
common-lisp.netClimacs - a Common Lisp Emacs implementation
CL Test Grid: ビルド状況climacs | CL Test Grid

インストール方法

(ql:quickload :climacs)

 quekさん作のmcclim-uimを使うとUIMで日本語入力が可能です。

mcclim-uimを利用する場合、mcclimの中のmcclim-freetypeも必要です。

(load "~/mcclim-uim/mcclim-uim.asd")
(load "~/quicklisp/dists/quicklisp/software/mcclim-20130813-cvs/Experimental/freetype/mcclim-freetype.asd")
(eval-when (:compile-toplevel :load-toplevel :execute)
  (ql:quickload :mcclim)
  (ql:quickload :mcclim-freetype)
  (ql:quickload :mcclim-uim)
  ;; 以上の後でclimacsをロード
  (ql:quickload :climacs)
  )

試してみる

 どんな関数があるかは、Quickdocsで確認できます。

 Common Lispで拡張できる、もしくは、Common Lisp製のEmacsは良く話題になりますが、climacsはCommon Lispで拡張できるEmacs系エディタです。
といっても勿論Emacsの機能がなんでも使える訳ではなく、エディタの便利さは拡張言語がなんであるかとはまた別の話で、細かいところの出来や、拡張ライブラリの充実具合は、Emacsに近付くのはかなり大変であることが窺い知れます。
climacsは、Portable Hemlockと、McCLIMのGoateeエディタを統合するところから出発したようです。

 一応キーバインドをカスタマイズする方法でも書いてみますが、頑張ればCommon Lispの開発環境として使えないわけでもありません。
climacsを育てて行くのも一興かなと思います。

;; C-h をバックスペースにするために、C-h のキーストロークを削除。
(clim:remove-keystroke-from-command-table 'esa:help-table
                                          '(:keyboard #\h 512)
                                          :errorp nil)
;; C-h でバックスペース
(esa:set-key `(drei-commands::com-backward-delete-object
               ,clim:*numeric-argument-marker*
               ,clim:*numeric-argument-marker*)
             'drei:deletion-table
             '((#\h :control)))
;; C-m newline and indent
(esa:set-key 'drei-lisp-syntax::com-newline-indent-then-arglist
             'drei-lisp-syntax:lisp-table
             '((#\m :control)))
;; C-/ undo
(esa:set-key 'drei-commands::com-undo
             'drei:editing-table
             '((#\/ :control)))
;; C-i で補完
(esa:set-key 'drei-lisp-syntax::com-indent-line-and-complete-symbol
             'drei-lisp-syntax:lisp-table
             '((#\i :control)))
climacs

まとめ

 今回は、climacsを紹介してみました。
今ではあまり見掛けませんが、古くは大体の処理系にCommon Lisp製のEmacs系エディタが付属してきていました。
今でも商用処理系のAllegro CLやLispWorksにはCommon Lisp製のエディタは付属してきますが、さすがにEmacs程多機能ではないですね。

comments powered by Disqus