File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / readline / NEWS
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Mar 17 01:01:01 2021 UTC (3 years, 3 months ago) by misho
Branches: readline, MAIN
CVS tags: v8_2p0, v8_1p0, HEAD
readline 8.1

    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.

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>