8 Command Line Editing

This chapter describes the basic features of the GNU command line editing interface. Command line editing is provided by the Readline library, which is used by several different programs, including Bash. Command line editing is enabled by default when using an interactive shell, unless the --noediting option is supplied at shell invocation. Line editing is also used when using the -e option to the read builtin command (see Bash Builtins). By default, the line editing commands are similar to those of Emacs. A vi-style line editing interface is also available. Line editing can be enabled at any time using the -o emacs or -o vi options to the set builtin command (see The Set Builtin), or disabled using the +o emacs or +o vi options to set.

Introduction and Notation:    Notation used in this text.
Readline Interaction:    The minimum set of commands for editing a line.
Readline Init File:    Customizing Readline from a user’s view.
Bindable Readline Commands:    A description of most of the Readline commands

available for binding

Readline vi Mode:    A short description of how to make Readline

behave like the vi editor.

Programmable Completion:    How to specify the possible completions for

a specific command.

Programmable Completion Builtins:    Builtin commands to specify how to

complete arguments for a particular command.

A Programmable Completion Example:    An example shell function for

generating possible completions.