Command-Line Editing with tcsh

Mac OS X’s default 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 the following commands:

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 yank cut text and set a mark; vi mode does not.

  • The command-history-searching capabilities of the two modes differ.

Emacs mode

Table 1-2, Table 1-3, and Table 1-4 describe the various editing keystrokes available in Emacs mode.

Table 1-2. Cursor positioning commands (Emacs mode)

Command

Description

Control-B

Moves the cursor back (left) one character.

Control-F

Moves the cursor forward (right) one character.

Esc then B

Moves the cursor back one word.

Esc then F

Moves the cursor forward one word.

Control-A

Moves the cursor to the beginning of the line.

Control-E

Moves the cursor to the end of the line.

Table 1-3. Text deletion commands (Emacs mode)

Command

Description

Del or Control-H

Deletes the character to the left of the ...

Get Mac OS X for Unix Geeks now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.