Command-Line Editing with tcsh
Mac OS X’s default user shell, tcsh, lets you move your cursor around in the command line, editing the line as you type. There are two main modes for editing the command line, based on the two most commonly used text editors: Emacs and vi. Emacs mode is the default; you can switch between the modes with:
-
bindkey -e Select Emacs bindings
-
bindkey -v Select vi bindings
The main difference between the Emacs and vi bindings is that the Emacs bindings are modeless (i.e., they always work). With the vi bindings, you must switch between insert and command modes; different commands are useful in each mode. Additionally:
Emacs mode is simpler; vi mode allows finer control.
Emacs mode allows you to cut text and set a mark; vi mode does not.
The command-history-searching capabilities differ.
Emacs Mode
Table 4-2 through Table 4-4 describe the various editing keystrokes available in Emacs mode.
Table 4-2. Cursor-positioning commands (Emacs mode)
| Command | Description |
|---|---|
| Control-B | Move the cursor back (left) one character |
| Control-F | Move the cursor forward (right) one character |
| Esc-B | Move the cursor back one word |
| Esc-F | Move the cursor forward one word |
| Control-A | Move the cursor to the beginning of the line |
| Control-E | Move the cursor to the end of the line |
Table 4-3. Text-deletion commands (Emacs mode)
| Command | Description |
|---|---|
| Del or Control-H | Delete the character to the left of the cursor |
| Control-D | Delete the character under the cursor |
| Esc-D | Delete the next ... |