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?”describe-bindings
“Exactly what bindings are available?”describe-mode
“Tell me all about this mode”view-lossage
“Woah, what key chord did I just do?”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.