emacs's cua-mode naming problems

Perm url with updates: http://xahlee.org/emacs/modernization_cua-mode.html

Emacs cua-mode Problems

Xah Lee, 2010-06-19

This page discuss some issues about emacs cua-mode. In particular, problems in naming.

On 2010-06-18 const451 <const...@gmail.com> wrote:

Is there a plugin that uses standard key shortcuts for text manipulation such as Ctrl-C, Ctrl-V, Ctrl-Z, etc.? I think they are faster to use than the default shortcuts in emacs.

I run Ubuntu Lucid (newbie).

You can turn on cua-mode by Alt+x cua-mode.

Or you can install the ErgoEmacs Keybinding, then it'll also support standard Open, Close, Save, Save As, New... about 7 of them.

The Naming of cua-Mode

Emacs's cua-mode, is named after the IBM's Common User Accesss standard. However, according to Wikipedia IBM Common User Access the IBM CUA standard does not say cut/copy/paste are X C V keys. Quote:

The Cut command is ⇧ Shift+Del; Copy is Ctrl+Ins; Paste is ⇧ Shift+Ins;

The Z X C V keys for undo/cut/copy/paste is popularized by Apple starting in mid 1980s.

Emacs's naming of cua-mode is very bad. Because:

  • CUA name is not intuitive. Very few people know what CUA is. Among all people who makes a living by coding, i'd say less than 0.05% know what CUA means. Personally, i own and use Mac daily since 1991 to today, started my programing career in 1995, read ALL issues of Macworld , MacUser magazines in the 1990s till they closed doors. I never heard of CUA until using a GUI based emacs on the Mac in about 2006.
  • Emacs's cua-mode's behavior is not IBM's CUA standard at all. All it does is basically just the X C V keys, and these may not even be part of IBM's CUA.

Why was it named cua-mode?

Emacs's developers named it cua-mode probably because of a ego/cult problem. They needed a name for this widely needed mode, but naming it anything that might relate to Microsoft Windows or Apple is a political problem to FSF/GNU.

(note: Richard Stallman HATES Microsoft and also HATES Apple. GNU's stance against Microsoft is well known, from GNU/Richard's writings especially in 1980s and 1990s. Richard has published several essays that advise programers to avoid mentioning the term Microsoft, as a political tactic for advancing GNU, and this is well known. Throughout 1990s, GNU boycotted Apple partly because Apple sued Microsoft for copying Apple's GUI interface. This boycott is officially ceased in i think around 2000. See: “End of Apple Boycott” from gnu.org GNU's Bulletin, vol. 1 no. 18 )

Better Naming

The cua-mode is probably better named XCV-mode or copy-paste-key-mode, and the menu name should be “XCV keys for Cut/Copy/Paste”. The mode name change is probably too late, but the menu name change can still be done. The name “XCV keys for Cut/Copy/Paste” does not relate any commercial organization, and is easy for people to understand what it means, and it more accurately describe what cua-mode do.

Missing Z for Undo

The cua-mode has a major problem in that it supports XCV but not Z for undo. The Z for undo is part of the XCV, and the standard undo/redo behavior is also widely asked for. Z for undo is also standard across Microsoft/Mac/Linuxes today.

Terminologies of plug-in/add-on/shortcut vs Emacs Conventions

On 2010-06-19, Evans Winner <tho...@unm.edu> wrote:

By the way, and just for your information, Emacs users typically do not call Emacs Lisp packages "plugins." More often they call them libraries or packages.

Calling it plug-in is not emacs convention but i think is very good terminology. It is intuitive, and widely used. For example, browsers used the term plug-ins since ~1995. Mathematica, a programing language calls its extra packages/libraries plug-ins or add-ons when in a user context. Firefox also clarified a bit in their terminology of plug-in vs add-on about 1 or 2 years ago. e.g. plug-in are those like Java, Flash, QuickTime engines, while add-on often are little user oriented utilities.

plug-in and add-on are intuitive terms that anyone can easily understand what they mean just by the word itself. While, package, library, module, is more oriented to software engineering in a technical context.

Keybinding vs Keyboard Shortcut

If the code implements a major or minor mode, they typically call it a "mode."  They also usually don't use the term "shortcut," possibly because that seems to imply some other manner of input that is privileged over use of the keyboard.  The phrase "key binding" is more often used, because that is what you do: you bind a function to a key or key combination.

Similar to the library/package/module vs plug-in/add-on argument, same applies here. The term “Keyboard shortcut” or “hotkey” is suitable in the context of users using a software application, while keybinding is suitable for programing and software engineering.

Keyboard shortcut is a better term also because it is the term used in Microsoft, Mac OS X, Linuxes today.

“keybinding” is in fact technically not correct in the user application context. When you press a key to invoke a command, you are not binding a key. You are using a KEY that has a keybinding. The gist is that it is a user interface convenience, a sort of alias, therefore: shortcut, a shortcut through the keyboard, thus “keyboard shortcut”, is better than keybinding.

These distinctions are important.

I'm writing this because it is common in emacs community to bug new users about these kinda things. When the issue is about some technical aspects, such as elisp macros vs keyboard macros, such that using the wrong term leads to wrong results or confusion, then it is good. However, when fuzzing about a terminology that has little practical impact other than political, then i think it's very harmful to emacs's health. It just turns away users and keep brewing the emacs cult.

Popular posts from this blog

11 Years of Writing About Emacs

does md5 creates more randomness?

Google Code shutting down, future of ErgoEmacs