Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Piotr Zieliński
[go: Go Back, main page]

Efficient and ergonomic text editing

This page contains several ideas for improving the efficiency of text editing. Some of them (such as the keyboard layout designed by Dvorak around 50 years ago) are quite old but still unpopular. The others are part of my ongoing unofficial research. Be sure to look at my ideas on efficient window manager configuration. The contents of this page should be considered as a snapshot of my current configuration rather than a final result. Feel free to use and improve any of the ideas and files from this page. Feedback is very much appreciated.

Related pages

  • Humane Interface describes key principles behind designing easy-to-use and productive user interfaces.

Input modes

Generally speaking, people interact with computers using several different "input modes". By "modes" I do not mean explicitly selected modes, as in editors like vim. In this article, a "mode" refers to the phisical arrangement of hands the user has subconciously made to make the interaction more efficient. From the computer point of view, all modes are available to the user at the same time without requiring him/her to explicitly switch between modes. In plain English, the same command is bound to more than one key / key-sequence / mouse button.

  • Typing mode. In this mode, the user enters a contiguous stream of letters/symbols and makes minor corrections. The most frequently used keys are input keys (letters and symbols) and basic editing keys (delete-char/word-forward/backward, move-word-forward/backward, end-of-line, undo, enter). In this high-speed mode, most speed is lost by the necessity of moving hands out of the home row to press distant keys (such as backspace, or various symbols like parentheses) and realigning them with the how row again. On the other hand, pressing modifiers (Alt/Ctrl) is cheap (fast).
  • Editing mode. This mode is used to correct individual mistakes at various places in the document (inserting / deleting symbols). The right hand is responsible for positioning (using arrow keys) and deleting characters, whereas the left hand inserts symbols. Pressing distant keys in not a big problem in this mode (because the left hand has to float over the whole keyboard anyway) but keys located on the left are more easily accessible than those on the right (like enter). Using modifiers (unless they are pressed by the right hand) is expensive because it usually requires stretching the left hand. The right hand seems to be a bit underutilized in this mode (it has only a few keys to handle). Function keys (F1-F12) can be used in this mode.
  • Mouse editing mode. The same as above but the right hand uses a mouse for positioning rather than arrow keys. Also, the right hand cannot press modifiers.
  • Full mouse mode. Both hands on your mice ;-) Seriously, the right hand moves the mouse and clicks various buttons, whereas the other one does nothing or press modifiers occasionally. This is a subset of the previous mode, and it's more relevant to a window manager configuration than keyboard input, so I will not discuss it here.
Distinguishing between those modes is important because switching between them is expensive (you need to move your hands considerably). On the other hand, using a mode for an activity for which another mode is much better (such as using the editing-mode grey 'End' key for 'end-of-line' during typing) can cause significant loss of speed.

Another consequence of having many modes is the fact that some frequently used symbols should be accessible in more than way. Consider the minus sign for example. In the pure typing mode it can be easily accessed by the Mod-S combination (see below). However, in editing mode or even in the typing mode if another modifier (let say Shift) is pressed, it's easier to hit the 'minus' key, which doesn't require changing the modifier. Moving the cursor/point one line up is another example. You can do it by Alt-C is typing mode, by pressing an "arrow up" in editing mode, or by clicking your mouse in the appropriate point in the mouse mode.