2019-08-13 00:24:03 +08:00
|
|
|
This is a terse description of the new features added to readline-8.0 since
|
|
|
|
the release of readline-7.0.
|
|
|
|
|
|
|
|
New Features in Readline
|
|
|
|
|
|
|
|
a. Non-incremental vi-mode search (`N', `n') can search for a shell pattern, as
|
|
|
|
Posix specifies (uses fnmatch(3) if available).
|
|
|
|
|
|
|
|
b. There are new `next-screen-line' and `previous-screen-line' bindable
|
|
|
|
commands, which move the cursor to the same column in the next, or previous,
|
|
|
|
physical line, respectively.
|
|
|
|
|
|
|
|
c. There are default key bindings for control-arrow-key key combinations.
|
|
|
|
|
|
|
|
d. A negative argument (-N) to `quoted-insert' means to insert the next N
|
|
|
|
characters using quoted-insert.
|
|
|
|
|
|
|
|
e. New public function: rl_check_signals(), which allows applications to
|
|
|
|
respond to signals that readline catches while waiting for input using
|
|
|
|
a custom read function.
|
|
|
|
|
|
|
|
f. There is new support for conditionally testing the readline version in an
|
|
|
|
inputrc file, with a full set of arithmetic comparison operators available.
|
|
|
|
|
|
|
|
g. There is a simple variable comparison facility available for use within an
|
|
|
|
inputrc file. Allowable operators are equality and inequality; string
|
|
|
|
variables may be compared to a value; boolean variables must be compared to
|
|
|
|
either `on' or `off'; variable names are separated from the operator by
|
|
|
|
whitespace.
|
|
|
|
|
|
|
|
h. The history expansion library now understands command and process
|
|
|
|
substitution and extended globbing and allows them to appear anywhere in a
|
|
|
|
word.
|
|
|
|
|
|
|
|
i. The history library has a new variable that allows applications to set the
|
|
|
|
initial quoting state, so quoting state can be inherited from a previous
|
|
|
|
line.
|
|
|
|
|
|
|
|
j. Readline now allows application-defined keymap names; there is a new public
|
|
|
|
function, rl_set_keymap_name(), to do that.
|
|
|
|
|
|
|
|
k. The "Insert" keypad key, if available, now puts readline into overwrite
|
|
|
|
mode.
|
|
|
|
|
|
|
|
-------------------------------------------------------------------------------
|
2018-10-08 02:52:13 +08:00
|
|
|
This is a terse description of the new features added to readline-7.0 since
|
|
|
|
the release of readline-6.3.
|
2006-04-21 04:05:52 +08:00
|
|
|
|
2018-10-08 02:52:13 +08:00
|
|
|
New Features in Readline
|
2006-04-21 04:05:52 +08:00
|
|
|
|
2018-10-08 02:52:13 +08:00
|
|
|
a. The history truncation code now uses the same error recovery mechansim as
|
|
|
|
the history writing code, and restores the old version of the history file
|
|
|
|
on error. The error recovery mechanism handles symlinked history files.
|
2006-04-21 04:05:52 +08:00
|
|
|
|
2018-10-08 02:52:13 +08:00
|
|
|
b. There is a new bindable variable, `enable-bracketed-paste', which enables
|
|
|
|
support for a terminal's bracketed paste mode.
|
2006-04-21 04:05:52 +08:00
|
|
|
|
2018-10-08 02:52:13 +08:00
|
|
|
c. The editing mode indicators can now be strings and are user-settable
|
|
|
|
(new `emacs-mode-string', `vi-cmd-mode-string' and `vi-ins-mode-string'
|
|
|
|
variables). Mode strings can contain invisible character sequences.
|
|
|
|
Setting mode strings to null strings restores the defaults.
|
2006-04-21 04:05:52 +08:00
|
|
|
|
2018-10-08 02:52:13 +08:00
|
|
|
d. Prompt expansion adds the mode string to the last line of a multi-line
|
|
|
|
prompt (one with embedded newlines).
|
|
|
|
|
|
|
|
e. There is a new bindable variable, `colored-completion-prefix', which, if
|
|
|
|
set, causes the common prefix of a set of possible completions to be
|
|
|
|
displayed in color.
|
|
|
|
|
|
|
|
f. There is a new bindable command `vi-yank-pop', a vi-mode version of emacs-
|
|
|
|
mode yank-pop.
|
|
|
|
|
|
|
|
g. The redisplay code underwent several efficiency improvements for multibyte
|
|
|
|
locales.
|
|
|
|
|
|
|
|
h. The insert-char function attempts to batch-insert all pending typeahead
|
|
|
|
that maps to self-insert, as long as it is coming from the terminal.
|
|
|
|
|
|
|
|
i. rl_callback_sigcleanup: a new application function that can clean up and
|
|
|
|
unset any state set by readline's callback mode. Intended to be used
|
|
|
|
after a signal.
|
|
|
|
|
|
|
|
j. If an incremental search string has its last character removed with DEL, the
|
|
|
|
resulting empty search string no longer matches the previous line.
|
|
|
|
|
|
|
|
k. If readline reads a history file that begins with `#' (or the value of
|
|
|
|
the history comment character) and has enabled history timestamps, the history
|
|
|
|
entries are assumed to be delimited by timestamps. This allows multi-line
|
|
|
|
history entries.
|
|
|
|
|
|
|
|
l. Readline now throws an error if it parses a key binding without a terminating
|
|
|
|
`:' or whitespace.
|
|
|
|
|
2019-08-13 00:24:03 +08:00
|
|
|
m. The default binding for ^W in vi mode now uses word boundaries specified
|
|
|
|
by Posix (vi-unix-word-rubout is bindable command name).
|
|
|
|
|
|
|
|
n. rl_clear_visible_line: new application-callable function; clears all
|
|
|
|
screen lines occupied by the current visible readline line.
|
|
|
|
|
|
|
|
o. rl_tty_set_echoing: application-callable function that controls whether
|
|
|
|
or not readline thinks it is echoing terminal output.
|
|
|
|
|
|
|
|
p. Handle >| and strings of digits preceding and following redirection
|
|
|
|
specifications as single tokens when tokenizing the line for history
|
|
|
|
expansion.
|
|
|
|
|
|
|
|
q. Fixed a bug with displaying completions when the prefix display length
|
|
|
|
is greater than the length of the completions to be displayed.
|
|
|
|
|
|
|
|
r. The :p history modifier now applies to the entire line, so any expansion
|
|
|
|
specifying :p causes the line to be printed instead of expanded.
|
|
|
|
|
|
|
|
s. New application-callable function: rl_pending_signal(): returns the signal
|
|
|
|
number of any signal readline has caught but not yet handled.
|
|
|
|
|
|
|
|
t. New application-settable variable: rl_persistent_signal_handlers: if set
|
|
|
|
to a non-zero value, readline will enable the readline-6.2 signal handler
|
|
|
|
behavior in callback mode: handlers are installed when
|
|
|
|
rl_callback_handler_install is called and removed removed when a complete
|
|
|
|
line has been read.
|
|
|
|
|
2018-10-08 02:52:13 +08:00
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
This is a terse description of the new features added to readline-6.3 since
|
|
|
|
the release of readline-6.2.
|
|
|
|
|
|
|
|
New Features in Readline
|
|
|
|
|
|
|
|
a. Readline is now more responsive to SIGHUP and other fatal signals when
|
|
|
|
reading input from the terminal or performing word completion but no
|
|
|
|
longer attempts to run any not-allowable functions from a signal handler
|
|
|
|
context.
|
|
|
|
|
|
|
|
b. There are new bindable commands to search the history for the string of
|
|
|
|
characters between the beginning of the line and the point
|
|
|
|
(history-substring-search-forward, history-substring-search-backward)
|
|
|
|
|
|
|
|
c. Readline allows quoted strings as the values of variables when setting
|
|
|
|
them with `set'. As a side effect, trailing spaces and tabs are ignored
|
|
|
|
when setting a string variable's value.
|
|
|
|
|
|
|
|
d. The history library creates a backup of the history file when writing it
|
|
|
|
and restores the backup on a write error.
|
|
|
|
|
|
|
|
e. New application-settable variable: rl_filename_stat_hook: a function called
|
|
|
|
with a filename before using it in a call to stat(2). Bash uses it to
|
|
|
|
expand shell variables so things like $HOME/Downloads have a slash
|
|
|
|
appended.
|
|
|
|
|
|
|
|
f. New bindable function `print-last-kbd-macro', prints the most-recently-
|
|
|
|
defined keyboard macro in a reusable format.
|
|
|
|
|
|
|
|
g. New user-settable variable `colored-stats', enables use of colored text
|
|
|
|
to denote file types when displaying possible completions (colored analog
|
|
|
|
of visible-stats).
|
|
|
|
|
|
|
|
h. New user-settable variable `keyseq-timout', acts as an inter-character
|
|
|
|
timeout when reading input or incremental search strings.
|
|
|
|
|
|
|
|
i. New application-callable function: rl_clear_history. Clears the history list
|
|
|
|
and frees all readline-associated private data.
|
|
|
|
|
|
|
|
j. New user-settable variable, show-mode-in-prompt, adds a characters to the
|
|
|
|
beginning of the prompt indicating the current editing mode.
|
|
|
|
|
|
|
|
k. New application-settable variable: rl_input_available_hook; function to be
|
|
|
|
called when readline detects there is data available on its input file
|
|
|
|
descriptor.
|
|
|
|
|
|
|
|
l. Readline calls an application-set event hook (rl_event_hook) after it gets
|
|
|
|
a signal while reading input (read returns -1/EINTR but readline does not
|
|
|
|
handle the signal immediately) to allow the application to handle or
|
|
|
|
otherwise note it.
|
|
|
|
|
|
|
|
m. If the user-settable variable `history-size' is set to a value less than
|
|
|
|
0, the history list size is unlimited.
|
|
|
|
|
|
|
|
n. New application-settable variable: rl_signal_event_hook; function that is
|
|
|
|
called when readline is reading terminal input and read(2) is interrupted
|
|
|
|
by a signal. Currently not called for SIGHUP or SIGTERM.
|
|
|
|
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
This is a terse description of the new features added to readline-6.1 since
|
|
|
|
the release of readline-6.0.
|
|
|
|
|
|
|
|
New Features in Readline
|
|
|
|
|
|
|
|
a. New bindable function: menu-complete-backward.
|
|
|
|
|
|
|
|
b. In the vi insertion keymap, C-n is now bound to menu-complete by default,
|
|
|
|
and C-p to menu-complete-backward.
|
|
|
|
|
|
|
|
c. When in vi command mode, repeatedly hitting ESC now does nothing, even
|
|
|
|
when ESC introduces a bound key sequence. This is closer to how
|
|
|
|
historical vi behaves.
|
|
|
|
|
|
|
|
d. New bindable function: skip-csi-sequence. Can be used as a default to
|
|
|
|
consume key sequences generated by keys like Home and End without having
|
|
|
|
to bind all keys.
|
|
|
|
|
|
|
|
e. New application-settable function: rl_filename_rewrite_hook. Can be used
|
|
|
|
to rewite or modify filenames read from the file system before they are
|
|
|
|
compared to the word to be completed.
|
|
|
|
|
|
|
|
f. New bindable variable: skip-completed-text, active when completing in the
|
|
|
|
middle of a word. If enabled, it means that characters in the completion
|
|
|
|
that match characters in the remainder of the word are "skipped" rather
|
|
|
|
than inserted into the line.
|
|
|
|
|
|
|
|
g. The pre-readline-6.0 version of menu completion is available as
|
|
|
|
"old-menu-complete" for users who do not like the readline-6.0 version.
|
|
|
|
|
|
|
|
h. New bindable variable: echo-control-characters. If enabled, and the
|
|
|
|
tty ECHOCTL bit is set, controls the echoing of characters corresponding
|
|
|
|
to keyboard-generated signals.
|
|
|
|
|
|
|
|
i. New bindable variable: enable-meta-key. Controls whether or not readline
|
|
|
|
sends the smm/rmm sequences if the terminal indicates it has a meta key
|
|
|
|
that enables eight-bit characters.
|
|
|
|
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
This is a terse description of the new features added to readline-6.0 since
|
|
|
|
the release of readline-5.2.
|
|
|
|
|
|
|
|
New Features in Readline
|
|
|
|
|
|
|
|
a. A new variable, rl_sort_completion_matches; allows applications to inhibit
|
|
|
|
match list sorting (but beware: some things don't work right if
|
|
|
|
applications do this).
|
|
|
|
|
|
|
|
b. A new variable, rl_completion_invoking_key; allows applications to discover
|
|
|
|
the key that invoked rl_complete or rl_menu_complete.
|
|
|
|
|
|
|
|
c. The functions rl_block_sigint and rl_release_sigint are now public and
|
|
|
|
available to calling applications who want to protect critical sections
|
|
|
|
(like redisplay).
|
|
|
|
|
|
|
|
d. The functions rl_save_state and rl_restore_state are now public and
|
|
|
|
available to calling applications; documented rest of readline's state
|
|
|
|
flag values.
|
|
|
|
|
|
|
|
e. A new user-settable variable, `history-size', allows setting the maximum
|
|
|
|
number of entries in the history list.
|
|
|
|
|
|
|
|
f. There is a new implementation of menu completion, with several improvements
|
|
|
|
over the old; the most notable improvement is a better `completions
|
|
|
|
browsing' mode.
|
|
|
|
|
|
|
|
g. The menu completion code now uses the rl_menu_completion_entry_function
|
|
|
|
variable, allowing applications to provide their own menu completion
|
|
|
|
generators.
|
|
|
|
|
|
|
|
h. There is support for replacing a prefix of a pathname with a `...' when
|
|
|
|
displaying possible completions. This is controllable by setting the
|
|
|
|
`completion-prefix-display-length' variable. Matches with a common prefix
|
|
|
|
longer than this value have the common prefix replaced with `...'.
|
|
|
|
|
|
|
|
i. There is a new `revert-all-at-newline' variable. If enabled, readline will
|
|
|
|
undo all outstanding changes to all history lines when `accept-line' is
|
|
|
|
executed.
|
|
|
|
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
This is a terse description of the new features added to readline-5.2 since
|
|
|
|
the release of readline-5.1.
|
|
|
|
|
|
|
|
New Features in Readline
|
|
|
|
|
|
|
|
a. Calling applications can now set the keyboard timeout to 0, allowing
|
|
|
|
poll-like behavior.
|
|
|
|
|
|
|
|
b. The value of SYS_INPUTRC (configurable at compilation time) is now used as
|
|
|
|
the default last-ditch startup file.
|
|
|
|
|
|
|
|
c. The history file reading functions now allow windows-like \r\n line
|
|
|
|
terminators.
|
|
|
|
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
This is a terse description of the new features added to readline-5.1 since
|
|
|
|
the release of readline-5.0.
|
|
|
|
|
|
|
|
New Features in Readline
|
|
|
|
|
|
|
|
a. The key sequence sent by the keypad `delete' key is now automatically
|
|
|
|
bound to delete-char.
|
|
|
|
|
|
|
|
b. A negative argument to menu-complete now cycles backward through the
|
|
|
|
completion list.
|
|
|
|
|
|
|
|
c. A new bindable readline variable: bind-tty-special-chars. If non-zero,
|
|
|
|
readline will bind the terminal special characters to their readline
|
|
|
|
equivalents when it's called (on by default).
|
|
|
|
|
|
|
|
d. New bindable command: vi-rubout. Saves deleted text for possible
|
|
|
|
reinsertion, as with any vi-mode `text modification' command; `X' is bound
|
|
|
|
to this in vi command mode.
|
|
|
|
|
|
|
|
e. If the rl_completion_query_items is set to a value < 0, readline never
|
|
|
|
asks the user whether or not to view the possible completions.
|
|
|
|
|
|
|
|
f. New application-callable auxiliary function, rl_variable_value, returns
|
|
|
|
a string corresponding to a readline variable's value.
|
|
|
|
|
|
|
|
g. When parsing inputrc files and variable binding commands, the parser
|
|
|
|
strips trailing whitespace from values assigned to boolean variables
|
|
|
|
before checking them.
|
|
|
|
|
|
|
|
h. A new external application-controllable variable that allows the LINES
|
|
|
|
and COLUMNS environment variables to set the window size regardless of
|
|
|
|
what the kernel returns.
|
|
|
|
|
|
|
|
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
This is a terse description of the new features added to readline-5.0 since
|
|
|
|
the release of readline-4.3.
|
|
|
|
|
|
|
|
New Features in Readline
|
|
|
|
|
|
|
|
a. History expansion has a new `a' modifier equivalent to the `g' modifier
|
|
|
|
for compatibility with the BSD csh.
|
|
|
|
|
|
|
|
b. History expansion has a new `G' modifier equivalent to the BSD csh `g'
|
|
|
|
modifier, which performs a substitution once per word.
|
|
|
|
|
|
|
|
c. All non-incremental search operations may now undo the operation of
|
|
|
|
replacing the current line with the history line.
|
|
|
|
|
|
|
|
d. The text inserted by an `a' command in vi mode can be reinserted with
|
|
|
|
`.'.
|
|
|
|
|
|
|
|
e. New bindable variable, `show-all-if-unmodified'. If set, the readline
|
|
|
|
completer will list possible completions immediately if there is more
|
|
|
|
than one completion and partial completion cannot be performed.
|
|
|
|
|
|
|
|
f. There is a new application-callable `free_history_entry()' function.
|
|
|
|
|
|
|
|
g. History list entries now contain timestamp information; the history file
|
|
|
|
functions know how to read and write timestamp information associated
|
|
|
|
with each entry.
|
|
|
|
|
|
|
|
h. Four new key binding functions have been added:
|
|
|
|
|
|
|
|
rl_bind_key_if_unbound()
|
|
|
|
rl_bind_key_if_unbound_in_map()
|
|
|
|
rl_bind_keyseq_if_unbound()
|
|
|
|
rl_bind_keyseq_if_unbound_in_map()
|
|
|
|
|
|
|
|
i. New application variable, rl_completion_quote_character, set to any
|
|
|
|
quote character readline finds before it calls the application completion
|
|
|
|
function.
|
|
|
|
|
|
|
|
j. New application variable, rl_completion_suppress_quote, settable by an
|
|
|
|
application completion function. If set to non-zero, readline does not
|
|
|
|
attempt to append a closing quote to a completed word.
|
|
|
|
|
|
|
|
k. New application variable, rl_completion_found_quote, set to a non-zero
|
|
|
|
value if readline determines that the word to be completed is quoted.
|
|
|
|
Set before readline calls any application completion function.
|
|
|
|
|
|
|
|
l. New function hook, rl_completion_word_break_hook, called when readline
|
|
|
|
needs to break a line into words when completion is attempted. Allows
|
|
|
|
the word break characters to vary based on position in the line.
|
|
|
|
|
|
|
|
m. New bindable command: unix-filename-rubout. Does the same thing as
|
|
|
|
unix-word-rubout, but adds `/' to the set of word delimiters.
|
|
|
|
|
|
|
|
n. When listing completions, directories have a `/' appended if the
|
|
|
|
`mark-directories' option has been enabled.
|