To Praise Dynamic Abbreviation Expansion I no longer have pain in my hands after prolonged writing, and credit GNU Emacs' dabbrev-expand with this improvement. I use it bound to M-SPC to place upon my thumbs the most work. As is common with Emacs and similarly complex tools, I learned of this command entirely by mistake: I struck the wrong chord and asked the system of its function after I was curious. It's among my most common commands. The concept behind dynamic abbreviation expansion is simple: One may complete a word via its prefix, selected based on those words already written. Sequences of words can be completed by finishing one word and running the command on an empty word afterwards, such as by pressing space before using the command. This saves so much typing for me that I consider it required with any future editor I use. The command isn't without issues: I use GNU Emacs for IRC and reading documents others have written, so I'm occasionally hit with completions of misspelled words and other nonsense. The command checks other buffers in whatever order when no completions be found in that current; the variables dabbrev- ignored-buffer-names and dabbrev-ignored-buffer-regexps omit buffers from the search, but I'm unable to ignore all buffers that cause this problem since so many of my completions come from them, and so don't regularly use these variables at all. Similarly, I've found it worthless to open a dictionary in another buffer for this: As it hasn't been ``seasoned'' by my writing, most resulting completions will be words I don't use. I've found some success in using a dictionary comprising only words I've used, but I regularly complete entire word sequences with this command, whereas ordered dictionaries lack this information; I generally use several similar documents open in other buffers when writing. I very rarely use this command when writing programs, and only when it would be slightly less effort than using the true completion command. It's a bad habit, and I don't recommend using it like this. I make no use of Emacs' normal abbreviation expansion mechanisms, for I've no patience to define nor to memorize small such things, and think the idea's worth to be more than outweighed by its trouble. I've noticed, using the command on my Lemote YeeLoong, how it can take a noticeable stretch of time, several seconds, to return a negative result of no suitable expansion located; it's not lightweight. I'm curious how this command would work if bound to a foot pedal used alongside a chording keyboard; while the chording keyboard is slower, and tired out my whole arm to the shoulder when used, I think a foot pedal would work well, leaving the other hand for the mouse as I used it previously. None of these work best alone, but a chording keyboard, a ``normal'' keyboard, a foot pedal, and a trackball could work particularly well, I think. I should also look into using a speech-to-text system later. .