O'Reilly logo

Using csh & tcsh by Paul DuBois

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

vi Editing Mode

This section describes how to edit commands using the vi bindings. Be sure to select those bindings before trying any of the commands described below:

% bindkey -v

The vi bindings provide capabilities similar to those of the emacs bindings, but they have their own distinctive characteristics. The keystrokes to perform the commands sometimes differ, of course; a more significant difference is that editing using the vi bindings really involves two modes—just as with vi itself. In vi insert mode, characters are placed in the edit buffer as you type them. In vi command mode, characters are interpreted as editing commands. For example, if you type an x in insert mode, an x is put into the command line at the cursor position. If you type an x in command mode, the character under the cursor is deleted.

Because the two vi modes behave differently, it's important to know the rules for switching between them:

  • The editor is in insert mode initially, e.g., if you're typing a new command, or if you've just retrieved a line from your history list into the edit buffer, using CTRL-P.

  • To enter command mode, hit ESC.

  • In command mode, several commands put you into insert mode for entering new text, e.g., a (append after cursor) or i (insert before cursor). From insert mode, you can return to command mode by hitting ESC.

  • If you're not sure what mode you're in, hit ESC until tcsh beeps. You will then be in vi command mode.

The dual modes may seem confusing, but they're such an integral part ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required