vim使いのslime入門(4)
2008/11/17
カーソルの下にあるシンボルを、hyperspecで調べるキーバインドが、わからなかったんですが、rayfillさんに教えていただきました。いつも、ありがとうございます。
C-cC-dはバインド先がslime-doc-mapなので多分その先にキーマップがバインドされてるんじゃないかと。
C-cC-dのあとF1でキーマッピング一覧が出るはずです。
vim使いのslime入門%283%29のコメント欄
その先のキーマップは、slime-doc-bindingという変数に定義されていました。(ん~。しかし、prefixとして設定された場合のキーバインドの仕組みは良くわからなかった)
(defvar slime-doc-bindings '((?a slime-apropos) (?z slime-apropos-all) (?p slime-apropos-package) (?d slime-describe-symbol) (?f slime-describe-function) (?h slime-hyperspec-lookup) (?~ common-lisp-hyperspec-format)))
C-c C-d h が、該当のキーバインドでした。長いですね。orz. vimでは、K だったのに。slime使いの皆さんは、毎回このキーバインドを押しているんだろうか?それとも別のキーにマップしてるかもしれない。
replの中でシンボルの上にカーソルを置いて、C-c C-d h を実行してみると、netscapeが無いというエラーが表示された。
slime-hyperspec-lookupは、browse-urlを使って外部ブラウザを起動するようになっていたので、.emacsに以下の一行を追加したところ、iceweasel(要するにFirefox)で表示されました。
(setq browse-url-netscape-program "iceweasel")
キーバインド入力中の途中で、F1を押すと次に押すべきキー一覧がバッファで表示されるというのは、すごいですね。
vim使いからすると、やっぱりこのような3手のキーバインドは、覚えられるか不安になります。別のキーに割り当てようにも、どのキーが空いているのかも良くわからないλλλ…
あいてるキーはM-x describe-binding (またはC-h b)で現在のモードでマッピングされているキーがでるのでそれで空きを探すか M-x describe-key-briefly (またはC-h c)してキー押せばバインドされてる関数がわかるのでそれで適当にあいてるキーを探すのでどうでしょう?
一応emacs info manualには
> ユーザーはどんなキー列でも再定義して利用できますが、`C-c'に続けて1文字
> というキー列だけを使うのが最善です。このキー列は『ユーザー定義のために
> 予約』されていて、正しく設計されたEmacsの各種拡張とは衝突しないように
> なっているからです。F5からF9までのファンクションキーもユーザー定義のた
> めに予約してあります。これ以外のキー列を再定義すると、同じキーを再定義
> する拡張やメジャーモードによってあなたの定義が上書きされてしまう可能性
> があります。
と書いてありますが当然行儀の悪いやつが居てバッティングすることがあるので自分は使わないバインドをつぶすことが多いです(笑)
あとキーバインド周りについてはinfoも一緒に入ってるはずなのでM-x infoしてemacsとかemacs lisp intro、あとはelispあたりでkeybindingとかbindingとかで探せば詳細な説明が載ってますよ。
rayfillさん、ありがとうございます。
使ってないキーも調べられるんですね。
C-cなんとかってことは、マイナーモードとかぶらないキーを探せばいい感じですかね。infoもチェックします。
春夏新作人気カラー入荷