Previous: Multithreading, Up: User-interface conventions [Contents][Index]
In general we try to make our key bindings fit with the overall Emacs
style. We also have the following somewhat unusual convention of our
own: when entering a three-key sequence, the final key can be pressed
either with control or unmodified. For example, the
slime-describe-symbol
command is bound to C-c C-d d, but
it also works to type C-c C-d C-d. We’re simply binding both key
sequences because some people like to hold control for all three keys
and others don’t, and with the two-key prefix we’re not afraid of
running out of keys.
There is one exception to this rule, just to trip you up. We never bind C-h anywhere in a key sequence, so C-c C-d C-h doesn’t do the same thing as C-c C-d h. This is because Emacs has a built-in default so that typing a prefix followed by C-h will display all bindings starting with that prefix, so C-c C-d C-h will actually list the bindings for all documentation commands. This feature is just a bit too useful to clobber!
“Are you deliberately spiting Emacs’s brilliant online help facilities? The gods will be angry!”
This is a brilliant piece of advice. The Emacs online help facilities are your most immediate, up-to-date and complete resource for keybinding information. They are your friends:
describe-key
“What does this key do?”
Describes current function bound to <key> for focus buffer.
describe-bindings
“Exactly what bindings are available?”
Lists the current key-bindings for the focus buffer.
describe-mode
“Tell me all about this mode”
Shows all the available major mode keys, then the minor mode keys, for
the modes of the focus buffer.
view-lossage
“Woah, what key chord did I just do?”
Shows you the literal sequence of keys you’ve pressed in order.
Note: In this documentation the designation C-h is a
canonical key which might actually mean Ctrl-h, or F1, or
whatever you have help-command
bound to in your
.emacs
. Here is a common situation:
(global-set-key [f1] 'help-command) (global-set-key "\C-h" 'delete-backward-char)
In this situation everywhere you see C-h in the documentation you would substitute F1.
You can assign or change default key bindings globally using the
global-set-key
function in your ~/.emacs file like this:
(global-set-key "\C-c s" 'slime-selector)
which binds C-c s to the function slime-selector
.
Alternatively, if you want to assign or change a key binding in just a
particular slime mode, you can use the define-key
function
in your ~/.emacs file like this:
(define-key slime-repl-mode-map (kbd "C-c ;") 'slime-insert-balanced-comments)
which binds C-c ; to the function
slime-insert-balanced-comments
in the REPL buffer.
Previous: Multithreading, Up: User-interface conventions [Contents][Index]