Import GNU Readline 8.1
[deliverable/binutils-gdb.git] / readline / readline / NEWS
1 This is a terse description of the new features added to readline-8.1 since
2 the release of readline-8.0.
3
4 New Features in Readline
5
6 a. If a second consecutive completion attempt produces matches where the first
7 did not, treat it as a new completion attempt and insert a match as
8 appropriate.
9
10 b. Bracketed paste mode works in more places: incremental search strings, vi
11 overstrike mode, character search, and reading numeric arguments.
12
13 c. Readline automatically switches to horizontal scrolling if the terminal has
14 only one line.
15
16 d. Unbinding all key sequences bound to a particular readline function now
17 descends into keymaps for multi-key sequences.
18
19 e. rl-clear-display: new bindable command that clears the screen and, if
20 possible, the scrollback buffer (bound to emacs mode M-C-l by default).
21
22 f. New active mark and face feature: when enabled, it will highlight the text
23 inserted by a bracketed paste (the `active region') and the text found by
24 incremental and non-incremental history searches. This is tied to bracketed
25 paste and can be disabled by turning off bracketed paste.
26
27 g. Readline sets the mark in several additional commands.
28
29 h. Bracketed paste mode is enabled by default. There is a configure-time
30 option (--enable-bracketed-paste-default) to set the default to on or off.
31
32 i. Readline tries to take advantage of the more regular structure of UTF-8
33 characters to identify the beginning and end of characters when moving
34 through the line buffer.
35
36 j. The bindable operate-and-get-next command (and its default bindings) are
37 now part of readline instead of a bash-specific addition.
38
39 k. The signal cleanup code now blocks SIGINT while processing after a SIGINT.
40
41 -------------------------------------------------------------------------------
42 This is a terse description of the new features added to readline-8.0 since
43 the release of readline-7.0.
44
45 New Features in Readline
46
47 a. Non-incremental vi-mode search (`N', `n') can search for a shell pattern, as
48 Posix specifies (uses fnmatch(3) if available).
49
50 b. There are new `next-screen-line' and `previous-screen-line' bindable
51 commands, which move the cursor to the same column in the next, or previous,
52 physical line, respectively.
53
54 c. There are default key bindings for control-arrow-key key combinations.
55
56 d. A negative argument (-N) to `quoted-insert' means to insert the next N
57 characters using quoted-insert.
58
59 e. New public function: rl_check_signals(), which allows applications to
60 respond to signals that readline catches while waiting for input using
61 a custom read function.
62
63 f. There is new support for conditionally testing the readline version in an
64 inputrc file, with a full set of arithmetic comparison operators available.
65
66 g. There is a simple variable comparison facility available for use within an
67 inputrc file. Allowable operators are equality and inequality; string
68 variables may be compared to a value; boolean variables must be compared to
69 either `on' or `off'; variable names are separated from the operator by
70 whitespace.
71
72 h. The history expansion library now understands command and process
73 substitution and extended globbing and allows them to appear anywhere in a
74 word.
75
76 i. The history library has a new variable that allows applications to set the
77 initial quoting state, so quoting state can be inherited from a previous
78 line.
79
80 j. Readline now allows application-defined keymap names; there is a new public
81 function, rl_set_keymap_name(), to do that.
82
83 k. The "Insert" keypad key, if available, now puts readline into overwrite
84 mode.
85
86 -------------------------------------------------------------------------------
87 This is a terse description of the new features added to readline-7.0 since
88 the release of readline-6.3.
89
90 New Features in Readline
91
92 a. The history truncation code now uses the same error recovery mechansim as
93 the history writing code, and restores the old version of the history file
94 on error. The error recovery mechanism handles symlinked history files.
95
96 b. There is a new bindable variable, `enable-bracketed-paste', which enables
97 support for a terminal's bracketed paste mode.
98
99 c. The editing mode indicators can now be strings and are user-settable
100 (new `emacs-mode-string', `vi-cmd-mode-string' and `vi-ins-mode-string'
101 variables). Mode strings can contain invisible character sequences.
102 Setting mode strings to null strings restores the defaults.
103
104 d. Prompt expansion adds the mode string to the last line of a multi-line
105 prompt (one with embedded newlines).
106
107 e. There is a new bindable variable, `colored-completion-prefix', which, if
108 set, causes the common prefix of a set of possible completions to be
109 displayed in color.
110
111 f. There is a new bindable command `vi-yank-pop', a vi-mode version of emacs-
112 mode yank-pop.
113
114 g. The redisplay code underwent several efficiency improvements for multibyte
115 locales.
116
117 h. The insert-char function attempts to batch-insert all pending typeahead
118 that maps to self-insert, as long as it is coming from the terminal.
119
120 i. rl_callback_sigcleanup: a new application function that can clean up and
121 unset any state set by readline's callback mode. Intended to be used
122 after a signal.
123
124 j. If an incremental search string has its last character removed with DEL, the
125 resulting empty search string no longer matches the previous line.
126
127 k. If readline reads a history file that begins with `#' (or the value of
128 the history comment character) and has enabled history timestamps, the history
129 entries are assumed to be delimited by timestamps. This allows multi-line
130 history entries.
131
132 l. Readline now throws an error if it parses a key binding without a terminating
133 `:' or whitespace.
134
135 m. The default binding for ^W in vi mode now uses word boundaries specified
136 by Posix (vi-unix-word-rubout is bindable command name).
137
138 n. rl_clear_visible_line: new application-callable function; clears all
139 screen lines occupied by the current visible readline line.
140
141 o. rl_tty_set_echoing: application-callable function that controls whether
142 or not readline thinks it is echoing terminal output.
143
144 p. Handle >| and strings of digits preceding and following redirection
145 specifications as single tokens when tokenizing the line for history
146 expansion.
147
148 q. Fixed a bug with displaying completions when the prefix display length
149 is greater than the length of the completions to be displayed.
150
151 r. The :p history modifier now applies to the entire line, so any expansion
152 specifying :p causes the line to be printed instead of expanded.
153
154 s. New application-callable function: rl_pending_signal(): returns the signal
155 number of any signal readline has caught but not yet handled.
156
157 t. New application-settable variable: rl_persistent_signal_handlers: if set
158 to a non-zero value, readline will enable the readline-6.2 signal handler
159 behavior in callback mode: handlers are installed when
160 rl_callback_handler_install is called and removed removed when a complete
161 line has been read.
162
163 -------------------------------------------------------------------------------
164 This is a terse description of the new features added to readline-6.3 since
165 the release of readline-6.2.
166
167 New Features in Readline
168
169 a. Readline is now more responsive to SIGHUP and other fatal signals when
170 reading input from the terminal or performing word completion but no
171 longer attempts to run any not-allowable functions from a signal handler
172 context.
173
174 b. There are new bindable commands to search the history for the string of
175 characters between the beginning of the line and the point
176 (history-substring-search-forward, history-substring-search-backward)
177
178 c. Readline allows quoted strings as the values of variables when setting
179 them with `set'. As a side effect, trailing spaces and tabs are ignored
180 when setting a string variable's value.
181
182 d. The history library creates a backup of the history file when writing it
183 and restores the backup on a write error.
184
185 e. New application-settable variable: rl_filename_stat_hook: a function called
186 with a filename before using it in a call to stat(2). Bash uses it to
187 expand shell variables so things like $HOME/Downloads have a slash
188 appended.
189
190 f. New bindable function `print-last-kbd-macro', prints the most-recently-
191 defined keyboard macro in a reusable format.
192
193 g. New user-settable variable `colored-stats', enables use of colored text
194 to denote file types when displaying possible completions (colored analog
195 of visible-stats).
196
197 h. New user-settable variable `keyseq-timout', acts as an inter-character
198 timeout when reading input or incremental search strings.
199
200 i. New application-callable function: rl_clear_history. Clears the history list
201 and frees all readline-associated private data.
202
203 j. New user-settable variable, show-mode-in-prompt, adds a characters to the
204 beginning of the prompt indicating the current editing mode.
205
206 k. New application-settable variable: rl_input_available_hook; function to be
207 called when readline detects there is data available on its input file
208 descriptor.
209
210 l. Readline calls an application-set event hook (rl_event_hook) after it gets
211 a signal while reading input (read returns -1/EINTR but readline does not
212 handle the signal immediately) to allow the application to handle or
213 otherwise note it.
214
215 m. If the user-settable variable `history-size' is set to a value less than
216 0, the history list size is unlimited.
217
218 n. New application-settable variable: rl_signal_event_hook; function that is
219 called when readline is reading terminal input and read(2) is interrupted
220 by a signal. Currently not called for SIGHUP or SIGTERM.
221
222 -------------------------------------------------------------------------------
223 This is a terse description of the new features added to readline-6.2 since
224 the release of readline-6.1.
225
226 a. The history library does not try to write the history filename in the
227 current directory if $HOME is unset. This closes a potential security
228 problem if the application does not specify a history filename.
229
230 b. New bindable variable `completion-display-width' to set the number of
231 columns used when displaying completions.
232
233 c. New bindable variable `completion-case-map' to cause case-insensitive
234 completion to treat `-' and `_' as identical.
235
236 d. There are new bindable vi-mode command names to avoid readline's case-
237 insensitive matching not allowing them to be bound separately.
238
239 e. New bindable variable `menu-complete-display-prefix' causes the menu
240 completion code to display the common prefix of the possible completions
241 before cycling through the list, instead of after.
242
243 -------------------------------------------------------------------------------
244 This is a terse description of the new features added to readline-6.1 since
245 the release of readline-6.0.
246
247 New Features in Readline
248
249 a. New bindable function: menu-complete-backward.
250
251 b. In the vi insertion keymap, C-n is now bound to menu-complete by default,
252 and C-p to menu-complete-backward.
253
254 c. When in vi command mode, repeatedly hitting ESC now does nothing, even
255 when ESC introduces a bound key sequence. This is closer to how
256 historical vi behaves.
257
258 d. New bindable function: skip-csi-sequence. Can be used as a default to
259 consume key sequences generated by keys like Home and End without having
260 to bind all keys.
261
262 e. New application-settable function: rl_filename_rewrite_hook. Can be used
263 to rewite or modify filenames read from the file system before they are
264 compared to the word to be completed.
265
266 f. New bindable variable: skip-completed-text, active when completing in the
267 middle of a word. If enabled, it means that characters in the completion
268 that match characters in the remainder of the word are "skipped" rather
269 than inserted into the line.
270
271 g. The pre-readline-6.0 version of menu completion is available as
272 "old-menu-complete" for users who do not like the readline-6.0 version.
273
274 h. New bindable variable: echo-control-characters. If enabled, and the
275 tty ECHOCTL bit is set, controls the echoing of characters corresponding
276 to keyboard-generated signals.
277
278 i. New bindable variable: enable-meta-key. Controls whether or not readline
279 sends the smm/rmm sequences if the terminal indicates it has a meta key
280 that enables eight-bit characters.
281
282 -------------------------------------------------------------------------------
283 This is a terse description of the new features added to readline-6.0 since
284 the release of readline-5.2.
285
286 New Features in Readline
287
288 a. A new variable, rl_sort_completion_matches; allows applications to inhibit
289 match list sorting (but beware: some things don't work right if
290 applications do this).
291
292 b. A new variable, rl_completion_invoking_key; allows applications to discover
293 the key that invoked rl_complete or rl_menu_complete.
294
295 c. The functions rl_block_sigint and rl_release_sigint are now public and
296 available to calling applications who want to protect critical sections
297 (like redisplay).
298
299 d. The functions rl_save_state and rl_restore_state are now public and
300 available to calling applications; documented rest of readline's state
301 flag values.
302
303 e. A new user-settable variable, `history-size', allows setting the maximum
304 number of entries in the history list.
305
306 f. There is a new implementation of menu completion, with several improvements
307 over the old; the most notable improvement is a better `completions
308 browsing' mode.
309
310 g. The menu completion code now uses the rl_menu_completion_entry_function
311 variable, allowing applications to provide their own menu completion
312 generators.
313
314 h. There is support for replacing a prefix of a pathname with a `...' when
315 displaying possible completions. This is controllable by setting the
316 `completion-prefix-display-length' variable. Matches with a common prefix
317 longer than this value have the common prefix replaced with `...'.
318
319 i. There is a new `revert-all-at-newline' variable. If enabled, readline will
320 undo all outstanding changes to all history lines when `accept-line' is
321 executed.
322
323 -------------------------------------------------------------------------------
324 This is a terse description of the new features added to readline-5.2 since
325 the release of readline-5.1.
326
327 New Features in Readline
328
329 a. Calling applications can now set the keyboard timeout to 0, allowing
330 poll-like behavior.
331
332 b. The value of SYS_INPUTRC (configurable at compilation time) is now used as
333 the default last-ditch startup file.
334
335 c. The history file reading functions now allow windows-like \r\n line
336 terminators.
337
338 -------------------------------------------------------------------------------
339 This is a terse description of the new features added to readline-5.1 since
340 the release of readline-5.0.
341
342 New Features in Readline
343
344 a. The key sequence sent by the keypad `delete' key is now automatically
345 bound to delete-char.
346
347 b. A negative argument to menu-complete now cycles backward through the
348 completion list.
349
350 c. A new bindable readline variable: bind-tty-special-chars. If non-zero,
351 readline will bind the terminal special characters to their readline
352 equivalents when it's called (on by default).
353
354 d. New bindable command: vi-rubout. Saves deleted text for possible
355 reinsertion, as with any vi-mode `text modification' command; `X' is bound
356 to this in vi command mode.
357
358 e. If the rl_completion_query_items is set to a value < 0, readline never
359 asks the user whether or not to view the possible completions.
360
361 f. New application-callable auxiliary function, rl_variable_value, returns
362 a string corresponding to a readline variable's value.
363
364 g. When parsing inputrc files and variable binding commands, the parser
365 strips trailing whitespace from values assigned to boolean variables
366 before checking them.
367
368 h. A new external application-controllable variable that allows the LINES
369 and COLUMNS environment variables to set the window size regardless of
370 what the kernel returns.
371
372
373 -------------------------------------------------------------------------------
374 This is a terse description of the new features added to readline-5.0 since
375 the release of readline-4.3.
376
377 New Features in Readline
378
379 a. History expansion has a new `a' modifier equivalent to the `g' modifier
380 for compatibility with the BSD csh.
381
382 b. History expansion has a new `G' modifier equivalent to the BSD csh `g'
383 modifier, which performs a substitution once per word.
384
385 c. All non-incremental search operations may now undo the operation of
386 replacing the current line with the history line.
387
388 d. The text inserted by an `a' command in vi mode can be reinserted with
389 `.'.
390
391 e. New bindable variable, `show-all-if-unmodified'. If set, the readline
392 completer will list possible completions immediately if there is more
393 than one completion and partial completion cannot be performed.
394
395 f. There is a new application-callable `free_history_entry()' function.
396
397 g. History list entries now contain timestamp information; the history file
398 functions know how to read and write timestamp information associated
399 with each entry.
400
401 h. Four new key binding functions have been added:
402
403 rl_bind_key_if_unbound()
404 rl_bind_key_if_unbound_in_map()
405 rl_bind_keyseq_if_unbound()
406 rl_bind_keyseq_if_unbound_in_map()
407
408 i. New application variable, rl_completion_quote_character, set to any
409 quote character readline finds before it calls the application completion
410 function.
411
412 j. New application variable, rl_completion_suppress_quote, settable by an
413 application completion function. If set to non-zero, readline does not
414 attempt to append a closing quote to a completed word.
415
416 k. New application variable, rl_completion_found_quote, set to a non-zero
417 value if readline determines that the word to be completed is quoted.
418 Set before readline calls any application completion function.
419
420 l. New function hook, rl_completion_word_break_hook, called when readline
421 needs to break a line into words when completion is attempted. Allows
422 the word break characters to vary based on position in the line.
423
424 m. New bindable command: unix-filename-rubout. Does the same thing as
425 unix-word-rubout, but adds `/' to the set of word delimiters.
426
427 n. When listing completions, directories have a `/' appended if the
428 `mark-directories' option has been enabled.
This page took 0.038026 seconds and 4 git commands to generate.