[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-d
か M-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 件のコメント:
コメントを投稿