vim使いのslime入門(3)

今回は、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で、主に使いそうなキーバインドをメモします。

bindaction
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に関してはまた調べてみます。続く

2件のコメント

  • 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 が求めていたキーバインドでした。
    詳細は、後程別エントリにしよう思います。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


The reCAPTCHA verification period has expired. Please reload the page.

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください