2008/05/08

[Common Lisp] Climacs のメモ

Climacs で日本語が表示できる、ということで Climacs のメモ。

まずは

command は eval-last-expression のようなシンボルではなくEval Last Expression のような英語表記で入力する。

キー

だいたい Emacs と同じ。一番重要なのは C-h b の Describe Bindings. キーバインドの説明を表示してくれる。

C-x C-c
Climacs を終了する。
C-h a
Apropos Command: コマンドを検索する。
C-h f
Describe command: コマンドの説明を表示する。
C-h w
Where is command: これでコマンドがどのキーに割り付けられているか調べられる。
C-x u
Undo.
C-c C-e
Eval Last Expression. カーソル直前の式を評価する。
C-c C-k
Compile And Load File. コンパイルしてロードする。Slime と同じ。
C-c C-c
カーソル位置の式をコンパイルする。

12文字消すような場合は C-u 1 2 C-dM-1 M-2 C-d とする。C-u - 3 C-d あるいは M-- M-3 C-d で3文字バックスペースになる。

Climacs Commands Comparison このサイトの一覧が便利。

ドキュメントの作成方法

(defvar *output-dir* #p"$DOCSTRINGDIR") これは McCLIM のドキュメントだった。

climacs/Doc ディレクトリで make すれば生成される。

グループ(Groups)

バッファやファイルをグルーピングする機能がある。文字の置き換え等をそのグループに対して行うことができる。

カスタマイズ

climacs-rv で背景色黒で起動できる。:width と :height で起動時の画面の多きさの指定ができる。:new-process t で別スレッドで起動する。

あとキーアサインを少々カスタマイズ。

ということで ~/.sbclrc に次のように書いておく。

(defun climacs ()
"Climacs を起動する。"
(load (merge-pathnames ".climacs.lisp" (user-homedir-pathname))))

そして、~/.climacs.lisp

(eval-when (:compile-toplevel :load-toplevel :execute)
(require :mcclim)
(require :mcclim-freetype)
(require :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:climacs-rv :width 900 :height 1000 :new-process t)

欲しい機能

ファイルを開くときの ~/ をホームに展開と /usr//tmp/a.lisp を /tmp/a.lisp に展開。

Tab でコマンドやファイル名が補完できるが、候補の一覧は表示しない。一覧がほしい。

困ったとき

カーソルが青くなったら、どうすればいいんだろう?
C-x 0フォーカスのないバッファではカーソルが青くなるらしい。さらにリードオンリーのバッファではカーソルが表示されない。ということで C-x 0 で復帰するはず。
固まった?
Emacs の Slime から起動していれば、Slime のデバッガバッファが Emacs に表示されているはず。Restarts から [RETURN-TO-ESA] を選択する。

0 件のコメント: