I’ve long known about using the
UP (previous-history-element) and
DOWN (next-history-element) keys to move through the minibuffer history. It’s always been a little jarring that
C-p (previous-line) and
C-n (next-line), which I’m very habituated to use (perhaps even more than the actual arrow keys, since I touch type, and can use them without moving my hands) don’t work in the minibuffer—Emacs just beeps unhappily at me.
I was pleased to find out that, in addition to the dedicated arrow keys,
M-p (previous-history-element) and
M-n (next-history-element) scroll through the minibuffer history. The should be much more easily accessible to me—and I do scroll through the minibuffer a lot.
In GNU Emacs 23 the default line-movement behavior changed with regard to wrapped lines.
Not that I realized it at the time, entirely—like not realizing that I not only knew
M-f (forward-word) and
M-b (backward-word), but used them every day, I was so habituated to the prior behavior that I couldn’t articulate what had changed, I just knew something was different that was annoying me to no end.
It was only when I found a reference to
line-move-visual in the GNU Emacs Manual, that I realized exactly what it was that had changed—and, more importantly, how to change it back:
(setq line-move-visual nil
line-move-visual, when set to a value other than
nil, indicates that if there was a line on the screen, the cursor keys should move through it, even if it was the wrapped continuation of a prior line. Emacs’ prior behavior was that the cursor keys would move the cursor based on the basis of “logical lines”—that is, the lines as determined by the presence of line-ending characters. So if you had a “logical line” that spanned three lines on screen, when you hit
C-n (next-line) on that line, you ended up three lines down on screen.
If I hadn’t been habituated to this, I probably wouldn’t care—I don’t really think one behavior is significantly better than the other. But the prior behavior is what I’m used to, so I’m going to change it back.
At the same time, I’m setting
t so that when I move the cursor up and down while at the end of a “logical line”, the cursor will stick to the end of lines, no matter how long or short they are. This sort of stickiness is another behavior I’m used to at a fairly low level.