vim使いのslime入門(3)
2008/11/17
今回は、slimeのキーバインドを調べてみます。Webで検索してみても良かったんですが、slime.elを見てしまいました。いろんなところにキーバインドらしき定義があるんですが、replで使用できるキーバインドは、下のところで定義されているようでした。
(slime-define-keys slime-repl-mode-map ("\C-m" 'slime-repl-return) ("\C-j" 'slime-repl-newline-and-indent) ("\C-\M-m" 'slime-repl-closing-return) ([(control return)] 'slime-repl-closing-return) ("\C-a" 'slime-repl-bol) ([home] 'slime-repl-bol) ("\C-e" 'slime-repl-eol) ("\M-p" 'slime-repl-previous-input) ((kbd "C-<up>") 'slime-repl-previous-input) ("\M-n" 'slime-repl-next-input) ((kbd "C-<down>") 'slime-repl-next-input) ("\M-r" 'slime-repl-previous-matching-input) ("\M-s" 'slime-repl-next-matching-input) ("\C-c\C-c" 'slime-interrupt) ("\C-c\C-b" 'slime-interrupt) ("\C-c:" 'slime-interactive-eval) ("\C-c\C-e" 'slime-interactive-eval) ("\C-cE" 'slime-edit-value) ("\t" 'slime-complete-symbol) ("\t" 'slime-indent-and-complete-symbol) (" " 'slime-space) ("\C-c\C-d" slime-doc-map) ("\C-c\C-w" slime-who-map) ("\C-\M-x" 'slime-eval-defun) ("\C-c\C-o" 'slime-repl-clear-output) ("\C-c\C-t" 'slime-repl-clear-buffer) ("\C-c\C-u" 'slime-repl-kill-input) ("\C-c\C-n" 'slime-repl-next-prompt) ("\C-c\C-p" 'slime-repl-previous-prompt) ("\M-\C-a" 'slime-repl-beginning-of-defun) ("\M-\C-e" 'slime-repl-end-of-defun) ("\C-c\C-l" 'slime-load-file) ("\C-c\C-k" 'slime-compile-and-load-file) ("\C-c\C-z" 'slime-nop))
replで、主に使いそうなキーバインドをメモします。
bind | action |
---|---|
C-c C-l | ファイルをロードする。 |
M-p | 履歴の前の入力を復元する。 |
M-n | 履歴の後の入力を復元する。 |
M-r | 履歴を検索して復元する。シェルのC-rに相当する。 |
C-c : | S式や値を評価する。 |
\t | シンボルの補完を行なう。 |
(space) | 関数などの引数のヒントを表示する。 |
C-c C-l | ファイルをロードする。 |
C-c C-d のキーバインドは、HyperSpecを引くコードをするのかと思いましたが、slimeは反応してくれません。というか、slime入れてもHyperSpecは、入らないよな。多分HyperSpecを引くには、別の設定を行なう必要があるのかもしれません。HyperSpecに関してはまた調べてみます。続く
C-cC-dはバインド先がslime-doc-mapなので多分その先にキーマップがバインドされてるんじゃないかと。
C-cC-dのあとF1でキーマッピング一覧が出るはずです。
rayfillさん、ありがとうございます。
そうゆうものだったのですね。もうちょっと、slime.elを眺めていると、slime-doc-bindingという変数にC-c C-dの先のキーバインドが、定義されているようでした。
キーバインドを調べる時のF1の使い方は、便利ですね。
C-c C-d h が求めていたキーバインドでした。
詳細は、後程別エントリにしよう思います。