Criticism of Stevey Yegge's Effective Emacs
Stevey Yegge, a famous programer, has written a very popular blog article:
〔10 Specific Ways to Improve Your Productivity With Emacs At https://sites.google.com/site/steveyegge2/effective-emacs〕
- Item 1: Swap Caps-Lock and Control → BAD
- Item 2: Invoke M-x without the Alt key → BAD
- Item 3: Prefer backward-kill-word over Backspace
- Item 4: Use incremental search for Navigation
- Item 5: Use Temp Buffers
- Item 6: Master the buffer and window commands
- Item 7: Lose the UI → BAD
- Item 8: Learn the most important help functions
- Item 9: Master Emacs's regular expressions
- Item 10: Master the fine-grained text manipulation commands
I disagree with 3 of his tips strongly. This page documents them.
The tips i disagree strongly are:
- Swapping CapsLock and Ctrl key
- Invoking Meta+x without the Alt key
- “Lose the GUI”.
In the following, i explain why.
Swapping CapsLock and Control key?
Swapping CapsLock and Ctrl is not a good solution because it puts all the burden on the left pinky. The Ctrl key on most PC keyboard is at the corner, and is very easy to press with palm. Also, there are 2 Ctrl keys, on both sides. One should use them both like how Shift key is used, by using one hand for the modifier key and the other hand for the letter key. Using both hands avoids the awkward pinky-stretch, and using both left and right Ctrl keys lessens the repetitive burden on one hand.
Swapping CapsLock and Ctrl is a good workaround on laptop keyboards.
For detail, see: Emacs: Why You Should Not Swap CapsLock and Control.
Invoking Meta+x without the Alt key?
Steve also suggests that you change Meta+x to something involving Ctrl instead. Quote:
Alt-x is one of the most frequently typed Emacs key combos, and it involves scrunching your left hand up. Anything you're going to do thousands of times should be streamlined, so you want to be able to start a M-x sequence with the Control key (once you've completed Item 1!)
There's another very important reason to get in the habit of using a Control sequence: the Alt key is unreliable and nonstandard across platforms. In particular, when you're logged in to a remote host via telnet or ssh, Alt-x may or may not work, depending on the system type and the terminal configuration. Rather than mess with the headache of learning to configure every system you work on to know about the Alt key, it's easier to use a key sequence that always works.
The key sequence I use is Ctrl-x Ctrl-m …
I do not think this is absolutely a good advice, because:
- First, it assumes that you swap Ctrl with CapsLock. This i do not agree.
- Even if you did not swap Ctrl with CapsLock, he believes it's better to put Meta+x to something with Ctrl instead, because he says that the Meta (Alt) key is in non-standard places between keyboards, and sometimes in terminal applications, the Meta key doesn't work.
If you are on a laptop, then perhaps this might be reasonable. But even then i'd advise for a single key for Meta+x, such as F1.
On a full sized keyboard, especially ergonomic split ones, the Alt is right under your thumb, one for each hand. This makes it far better than Ctrl.
Depending on your keyboard and whether you need to switch computers often, i'd advise for a single key for Meta+x. For example: F5, or CapsLock, or the ▤ Menu key (Note: Emacs for Linux has the ▤ Menu key act as Meta+x by default.).
Lose the UI?
Steve advices users to “Lose the UI”.
In my first 6 years of using emacs, from 1998 to 2004, i use it inside text terminals exclusively (telnet/ssh on remote servers). Only after 2004, i started to use emacs in a graphical user interface, under Mac OS X.
I think graphical user interface is very helpful, because the menu lets a user see the most useful commands, and can serve as a reminder or cheat-sheet. For example, i've been using dired for over 10 years. Some of dired features i've never used. For example, looking at the dired menu [Operate], i see that i've actually never used the shortcuts S, H, B, L, T, Ctrl+t D, Ctrl+t a, Ctrl+t t, Ctrl+t r. Under its “Mark” menu, i've never used 【*/】, 【.】, 【**】, Meta+{, Meta+} . Similarly, there are many commands i've never used, or aware, that are listed under its [Regexp], [Immediate], [Subdir] menus. Maybe i've been missing out something, but emacs has 3000+ commands and lots of modes. Few people need to master all features. But occasionally, i can browse the graphical menu and find out the command that i kept forgetting to use, or see what most important commands are available for a new mode i just installed.
I think graphical menus are quite useful in this aspect. Losing them saves at most 2 lines of space, and today's monitors are too big and cheap to be of concern. I would agree that tool bar (the one with icons for opening file, copy cut paste, printing, help) is not very useful. (you can take off the tool-bar by using the menu [Options ▸ Show/Hide ▸ Tool-bar] then [Options ▸ Save Options].)
See also: Emacs: Master Tips