I am new to the Common Lisp universe. In order to code in Common Lisp, I have started using Emacs and Slime (among other stuff, such as ParEdit).
Emacs is another universe on its own. I realized that there are some counter-intuitive things in the emacs universe which, after a while, they start to make sense (such as using C-n
instead of scroll down with the mouse or using the down
arrow key).
Sometimes, I need to see an explanation to clarify things and solve the classic "you do not know that you do not know" problems.
One thing that intrigues me on Slime is the commands M-n
and C-down
. Both do roughly the same thing. Using the describe-key command I can see the definitions:
M-n runs the command slime-repl-next-input (found in slime-repl-mode-map), which is an interactive Lisp function in ‘slime-repl.el’.
It is bound to M-n, .
(slime-repl-next-input)
Cycle forwards through input history. See ‘slime-repl-previous-input’.
With a prefix-arg, do replacement from the mark.
And:
C-down runs the command slime-repl-forward-input (found in slime-repl-mode-map), which is an interactive Lisp function in ‘slime-repl.el’.
It is bound to .
(slime-repl-forward-input)
Cycle forwards through input history.
What is the rationale of having both? Just giving the users an option to use arrow keys and another option that avoids arrow keys?
Am I missing something about its architecture/design?