Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
READLINE(3)							   READLINE(3)

NAME
       readline	- get a	line from a user with editing

SYNOPSIS
       #include	<stdio.h>
       #include	<readline/readline.h>
       #include	<readline/history.h>

       char *
       readline	(const char *prompt);

COPYRIGHT
       Readline	is Copyright (C) 1989-2014 Free	Software Foundation,  Inc.

DESCRIPTION
       readline	will read a line from the terminal and return it, using	prompt
       as a prompt.  If	prompt is NULL or  the	empty  string,	no  prompt  is
       issued.	The line returned is allocated with malloc(3); the caller must
       free it when  finished.	 The  line  returned  has  the	final  newline
       removed,	so only	the text of the	line remains.

       readline	 offers	 editing  capabilities	while the user is entering the
       line.  By default, the line editing commands are	similar	 to  those  of
       emacs.  A vi-style line editing interface is also available.

       This  manual  page describes only the most basic	use of readline.  Much
       more functionality is available;	see The	GNU Readline Library  and  The
       GNU History Library for additional information.

RETURN VALUE
       readline	 returns  the text of the line read.  A	blank line returns the
       empty string.  If EOF is	encountered while reading a line, and the line
       is  empty,  NULL	is returned.  If an EOF	is read	with a non-empty line,
       it is treated as	a newline.

NOTATION
       An Emacs-style notation is used to denote keystrokes.  Control keys are
       denoted	by C-key, e.g.,	C-n means Control-N.  Similarly, meta keys are
       denoted by M-key, so M-x	means Meta-X.  (On keyboards  without  a  meta
       key,  M-x means ESC x, i.e., press the Escape key then the x key.  This
       makes ESC the meta prefix.  The combination M-C-x means	ESC-Control-x,
       or  press the Escape key	then hold the Control key while	pressing the x
       key.)

       Readline	commands may be	given numeric arguments, which normally	act as
       a  repeat  count.   Sometimes,  however,	it is the sign of the argument
       that is significant.  Passing a negative	argument  to  a	 command  that
       acts  in	the forward direction (e.g., kill-line)	causes that command to
       act in a	backward direction.  Commands whose  behavior  with  arguments
       deviates	from this are noted below.

       When  a command is described as killing text, the text deleted is saved
       for possible future retrieval (yanking).	 The killed text is saved in a
       kill ring.  Consecutive kills cause the text to be accumulated into one
       unit, which can be yanked all at	once.  Commands	which do not kill text
       separate	the chunks of text on the kill ring.

INITIALIZATION FILE
       Readline	 is  customized	 by putting commands in	an initialization file
       (the inputrc file).  The	name of	this file is taken from	the  value  of
       the  INPUTRC  environment  variable.   If  that	variable is unset, the
       default is ~/.inputrc.  If that file  does not exist or cannot be read,
       the  ultimate  default  is /etc/inputrc.	 When a	program	which uses the
       readline	library	starts up, the init file is read, and the key bindings
       and  variables  are set.	 There are only	a few basic constructs allowed
       in the readline init file.  Blank lines are ignored.   Lines  beginning
       with  a	# are comments.	 Lines beginning with a	$ indicate conditional
       constructs.  Other lines	denote key  bindings  and  variable  settings.
       Each  program using this	library	may add	its own	commands and bindings.

       For example, placing

	      M-Control-u: universal-argument
       or
	      C-Meta-u:	universal-argument

       into the	inputrc	would make M-C-u execute the readline command  univer-
       sal-argument.

       The  following symbolic character names are recognized while processing
       key bindings: DEL, ESC, ESCAPE,	LFD,  NEWLINE,	RET,  RETURN,  RUBOUT,
       SPACE, SPC, and TAB.

       In  addition  to	 command  names, readline allows keys to be bound to a
       string that is inserted when the	key is pressed (a macro).

   Key Bindings
       The syntax for controlling key bindings in the inputrc file is  simple.
       All  that is required is	the name of the	command	or the text of a macro
       and a key sequence to which it should be	bound.	The name may be	speci-
       fied in one of two ways:	as a symbolic key name,	possibly with Meta- or
       Control-	prefixes, or as	a key sequence.	 The name and key sequence are
       separated  by a colon.  There can be no whitespace between the name and
       the colon.

       When using the form keyname:function-name or macro, keyname is the name
       of a key	spelled	out in English.	 For example:

	      Control-u: universal-argument
	      Meta-Rubout: backward-kill-word
	      Control-o: "> output"

       In  the above example, C-u is bound to the function universal-argument,
       M-DEL is	bound to the function backward-kill-word, and C-o is bound  to
       run  the	macro expressed	on the right hand side (that is, to insert the
       text ``>	output'' into the line).

       In the second form, "keyseq":function-name  or  macro,  keyseq  differs
       from  keyname above in that strings denoting an entire key sequence may
       be specified by placing the sequence within double  quotes.   Some  GNU
       Emacs  style  key escapes can be	used, as in the	following example, but
       the symbolic character names are	not recognized.

	      "\C-u": universal-argument
	      "\C-x\C-r": re-read-init-file
	      "\e[11~":	"Function Key 1"

       In this example,	C-u is again bound to the function universal-argument.
       C-x  C-r	is bound to the	function re-read-init-file, and	ESC [ 1	1 ~ is
       bound to	insert the text	``Function Key 1''.

       The full	set of GNU Emacs style escape sequences	available when	speci-
       fying key sequences is
	      \C-    control prefix
	      \M-    meta prefix
	      \e     an	escape character
	      \\     backslash
	      \"     literal ",	a double quote
	      \'     literal ',	a single quote

       In  addition  to	 the GNU Emacs style escape sequences, a second	set of
       backslash escapes is available:
	      \a     alert (bell)
	      \b     backspace
	      \d     delete
	      \f     form feed
	      \n     newline
	      \r     carriage return
	      \t     horizontal	tab
	      \v     vertical tab
	      \nnn   the eight-bit character whose value is  the  octal	 value
		     nnn (one to three digits)
	      \xHH   the  eight-bit  character	whose value is the hexadecimal
		     value HH (one or two hex digits)

       When entering the text of a macro, single or double  quotes  should  be
       used  to	indicate a macro definition.  Unquoted text is assumed to be a
       function	name.  In the macro  body,  the	 backslash  escapes  described
       above  are  expanded.   Backslash will quote any	other character	in the
       macro text, including " and '.

       Bash allows the current readline	key bindings to	be displayed or	 modi-
       fied  with  the bind builtin command.  The editing mode may be switched
       during interactive use by using the -o option to	the set	 builtin  com-
       mand.   Other  programs	using this library provide similar mechanisms.
       The inputrc file	may be edited and re-read if a program does  not  pro-
       vide any	other means to incorporate new bindings.

   Variables
       Readline	has variables that can be used to further customize its	behav-
       ior.  A variable	may be set in the inputrc file with a statement	of the
       form

	      set variable-name	value

       Except  where  noted,  readline variables can take the values On	or Off
       (without	regard to case).  Unrecognized	variable  names	 are  ignored.
       When  a variable	value is read, empty or	null values, "on" (case-insen-
       sitive),	and "1"	are equivalent to On.  All other values	are equivalent
       to Off.	The variables and their	default	values are:

       bell-style (audible)
	      Controls	what  happens when readline wants to ring the terminal
	      bell.  If	set to none, readline never rings the bell.  If	set to
	      visible,	readline  uses a visible bell if one is	available.  If
	      set to audible, readline attempts	to ring	the terminal's bell.
       bind-tty-special-chars (On)
	      If set to	On (the	default), readline attempts to bind  the  con-
	      trol  characters	  treated  specially  by the kernel's terminal
	      driver to	their readline equivalents.
       blink-matching-paren (Off)
	      If set to	On, readline attempts to briefly move the cursor to an
	      opening parenthesis when a closing parenthesis is	inserted.
       colored-completion-prefix (Off)
	      If  set  to  On, when listing completions, readline displays the
	      common prefix of the set of possible completions using a differ-
	      ent  color.   The	 color definitions are taken from the value of
	      the LS_COLORS environment	variable.
       colored-stats (Off)
	      If set to	On, readline displays possible completions using  dif-
	      ferent  colors  to  indicate their file type.  The color defini-
	      tions are	taken from the	value  of  the	LS_COLORS  environment
	      variable.
       comment-begin (``#'')
	      The  string  that	is inserted in vi mode when the	insert-comment
	      command is executed.  This command is bound to M-# in emacs mode
	      and to # in vi command mode.
       completion-display-width	(-1)
	      The  number  of  screen columns used to display possible matches
	      when performing completion.  The value is	ignored	if it is  less
	      than  0 or greater than the terminal screen width.  A value of 0
	      will cause matches to be displayed one per  line.	  The  default
	      value is -1.
       completion-ignore-case (Off)
	      If set to	On, readline performs filename matching	and completion
	      in a case-insensitive fashion.
       completion-map-case (Off)
	      If set to	On, and	completion-ignore-case	is  enabled,  readline
	      treats  hyphens  (-) and underscores (_) as equivalent when per-
	      forming case-insensitive filename	matching and completion.
       completion-prefix-display-length	(0)
	      The length in characters of the common prefix of a list of  pos-
	      sible  completions that is displayed without modification.  When
	      set to a value greater than zero,	common	prefixes  longer  than
	      this  value are replaced with an ellipsis	when displaying	possi-
	      ble completions.
       completion-query-items (100)
	      This determines when the user is queried about viewing the  num-
	      ber  of  possible	 completions generated by the possible-comple-
	      tions command.  It may be	set to any integer value greater  than
	      or  equal	 to  zero.   If	 the number of possible	completions is
	      greater than or equal to the value of this variable, the user is
	      asked  whether or	not he wishes to view them; otherwise they are
	      simply listed on the terminal.  A	negative value causes readline
	      to never ask.
       convert-meta (On)
	      If  set  to On, readline will convert characters with the	eighth
	      bit set to an ASCII key sequence by stripping the	eighth bit and
	      prefixing	 it  with an escape character (in effect, using	escape
	      as the meta prefix).  The	default	is On, but readline  will  set
	      it to Off	if the locale contains eight-bit characters.
       disable-completion (Off)
	      If set to	On, readline will inhibit word completion.  Completion
	      characters will be inserted into the line	as if  they  had  been
	      mapped to	self-insert.
       echo-control-characters (On)
	      When  set	to On, on operating systems that indicate they support
	      it, readline echoes a character corresponding to a signal	gener-
	      ated from	the keyboard.
       editing-mode (emacs)
	      Controls whether readline	begins with a set of key bindings sim-
	      ilar to Emacs or vi.  editing-mode can be	set to either emacs or
	      vi.
       enable-bracketed-paste (Off)
	      When  set	 to  On, readline will configure the terminal in a way
	      that will	enable it to insert each paste into the	editing	buffer
	      as a single string of characters,	instead	of treating each char-
	      acter as if it had been read from	the keyboard.  This  can  pre-
	      vent  pasted  characters	from being interpreted as editing com-
	      mands.
       enable-keypad (Off)
	      When set to On, readline will try	to enable the application key-
	      pad  when	 it  is	 called.  Some systems need this to enable the
	      arrow keys.
       enable-meta-key (On)
	      When set to On, readline will try	to enable  any	meta  modifier
	      key  the	terminal claims	to support when	it is called.  On many
	      terminals, the meta key is used to send eight-bit	characters.
       expand-tilde (Off)
	      If set  to  On,  tilde  expansion	 is  performed	when  readline
	      attempts word completion.
       history-preserve-point (Off)
	      If  set  to  On, the history code	attempts to place point	at the
	      same location on each history line retrieved with	 previous-his-
	      tory or next-history.
       history-size (unset)
	      Set  the	maximum	number of history entries saved	in the history
	      list.  If	set to zero, any existing history entries are  deleted
	      and no new entries are saved.  If	set to a value less than zero,
	      the number of history entries is not limited.  By	 default,  the
	      number of	history	entries	is not limited.	 If an attempt is made
	      to set history-size to a non-numeric value, the  maximum	number
	      of history entries will be set to	500.
       horizontal-scroll-mode (Off)
	      When  set	 to  On, makes readline	use a single line for display,
	      scrolling	the input horizontally on a single screen line when it
	      becomes  longer  than the	screen width rather than wrapping to a
	      new line.
       input-meta (Off)
	      If set to	On, readline will enable eight-bit input (that is,  it
	      will  not	 clear	the  eighth  bit  in the characters it reads),
	      regardless of what the terminal claims it	can support.  The name
	      meta-flag	 is  a synonym for this	variable.  The default is Off,
	      but readline will	set it to On if	the locale contains  eight-bit
	      characters.
       isearch-terminators (``C-[ C-J'')
	      The  string  of  characters that should terminate	an incremental
	      search without subsequently executing the	character  as  a  com-
	      mand.   If this variable has not been given a value, the charac-
	      ters ESC and C-J will terminate an incremental search.
       keymap (emacs)
	      Set the current readline keymap.	The set	of legal keymap	 names
	      is  emacs,  emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,
	      vi-command, and vi-insert.   vi  is  equivalent  to  vi-command;
	      emacs  is	 equivalent  to	 emacs-standard.  The default value is
	      emacs.  The value	 of  editing-mode  also	 affects  the  default
	      keymap.
       emacs-mode-string (@)
	      This string is displayed immediately before the last line	of the
	      primary prompt when emacs	editing	mode is	active.	 The value  is
	      expanded	like  a	 key binding, so the standard set of meta- and
	      control prefixes and backslash escape  sequences	is  available.
	      Use  the	\1  and	 \2 escapes to begin and end sequences of non-
	      printing characters, which can be	used to	embed a	terminal  con-
	      trol sequence into the mode string.
       keyseq-timeout (500)
	      Specifies	 the  duration readline	will wait for a	character when
	      reading an ambiguous key sequence	(one that can form a  complete
	      key sequence using the input read	so far,	or can take additional
	      input to complete	a  longer  key	sequence).   If	 no  input  is
	      received	within	the timeout, readline will use the shorter but
	      complete key sequence.  The value	is specified in	 milliseconds,
	      so  a value of 1000 means	that readline will wait	one second for
	      additional input.	 If this variable is set to a value less  than
	      or  equal	to zero, or to a non-numeric value, readline will wait
	      until another key	is pressed to decide  which  key  sequence  to
	      complete.
       mark-directories	(On)
	      If set to	On, completed directory	names have a slash appended.
       mark-modified-lines (Off)
	      If  set  to  On,	history	lines that have	been modified are dis-
	      played with a preceding asterisk (*).
       mark-symlinked-directories (Off)
	      If set to	On, completed names which are symbolic links to	direc-
	      tories   have   a	 slash	appended  (subject  to	the  value  of
	      mark-directories).
       match-hidden-files (On)
	      This variable, when set to On, causes readline  to  match	 files
	      whose  names  begin  with	 a  `.'	(hidden	files) when performing
	      filename completion.  If set to Off, the	leading	 `.'  must  be
	      supplied by the user in the filename to be completed.
       menu-complete-display-prefix (Off)
	      If  set to On, menu completion displays the common prefix	of the
	      list of possible completions (which may be empty)	before cycling
	      through the list.
       output-meta (Off)
	      If  set  to On, readline will display characters with the	eighth
	      bit set directly rather than as a	meta-prefixed escape sequence.
	      The default is Off, but readline will set	it to On if the	locale
	      contains eight-bit characters.
       page-completions	(On)
	      If set to	On, readline uses an internal more-like	pager to  dis-
	      play a screenful of possible completions at a time.
       print-completions-horizontally (Off)
	      If  set  to  On,	readline will display completions with matches
	      sorted horizontally in alphabetical order, rather	than down  the
	      screen.
       revert-all-at-newline (Off)
	      If  set  to  On, readline	will undo all changes to history lines
	      before returning when accept-line	is executed.  By default, his-
	      tory  lines  may	be  modified  and retain individual undo lists
	      across calls to readline.
       show-all-if-ambiguous (Off)
	      This alters the default behavior of  the	completion  functions.
	      If set to	On, words which	have more than one possible completion
	      cause the	matches	to be listed immediately  instead  of  ringing
	      the bell.
       show-all-if-unmodified (Off)
	      This  alters the default behavior	of the completion functions in
	      a	fashion	similar	to show-all-if-ambiguous.  If set to On, words
	      which  have more than one	possible completion without any	possi-
	      ble partial completion (the possible completions don't  share  a
	      common  prefix)  cause  the  matches  to	be  listed immediately
	      instead of ringing the bell.
       show-mode-in-prompt (Off)
	      If set to	On, add	a character to the  beginning  of  the	prompt
	      indicating the editing mode: emacs, vi command, or vi insertion.
	      The mode strings are user-settable.
       skip-completed-text (Off)
	      If set to	On, this alters	the default completion	behavior  when
	      inserting	 a  single match into the line.	 It's only active when
	      performing completion in the middle  of  a  word.	  If  enabled,
	      readline	does  not  insert  characters from the completion that
	      match characters after point in the  word	 being	completed,  so
	      portions of the word following the cursor	are not	duplicated.
       vi-cmd-mode-string ((cmd))
	      This string is displayed immediately before the last line	of the
	      primary prompt when vi editing mode is  active  and  in  command
	      mode.  The value is expanded like	a key binding, so the standard
	      set of meta- and control prefixes	and backslash escape sequences
	      is  available.   Use  the	 \1  and  \2  escapes to begin and end
	      sequences	of non-printing	characters, which can be used to embed
	      a	terminal control sequence into the mode	string.
       vi-ins-mode-string ((ins))
	      This string is displayed immediately before the last line	of the
	      primary prompt when vi editing mode is active and	 in  insertion
	      mode.  The value is expanded like	a key binding, so the standard
	      set of meta- and control prefixes	and backslash escape sequences
	      is  available.   Use  the	 \1  and  \2  escapes to begin and end
	      sequences	of non-printing	characters, which can be used to embed
	      a	terminal control sequence into the mode	string.
       visible-stats (Off)
	      If  set to On, a character denoting a file's type	as reported by
	      stat(2) is appended to the filename when listing	possible  com-
	      pletions.

   Conditional Constructs
       Readline	 implements  a	facility  similar in spirit to the conditional
       compilation features of the C preprocessor which	 allows	 key  bindings
       and  variable  settings	to be performed	as the result of tests.	 There
       are four	parser directives used.

       $if    The $if construct	allows bindings	to be made based on the	 edit-
	      ing  mode,  the  terminal	 being	used, or the application using
	      readline.	 The text of the test extends to the end of the	 line;
	      no characters are	required to isolate it.

	      mode   The  mode=	 form  of  the	$if  directive is used to test
		     whether readline is in emacs or vi	 mode.	 This  may  be
		     used  in  conjunction  with  the  set keymap command, for
		     instance, to  set	bindings  in  the  emacs-standard  and
		     emacs-ctlx	 keymaps  only	if readline is starting	out in
		     emacs mode.

	      term   The term= form may	be used	to  include  terminal-specific
		     key bindings, perhaps to bind the key sequences output by
		     the terminal's function keys.  The	word on	the right side
		     of	 the = is tested against the full name of the terminal
		     and the portion of	the terminal name before the first  -.
		     This  allows  sun	to  match  both	 sun  and sun-cmd, for
		     instance.

	      application
		     The application construct is used to include application-
		     specific  settings.   Each	 program  using	 the  readline
		     library sets the application name,	and an	initialization
		     file can test for a particular value.  This could be used
		     to	bind key sequences to functions	useful for a  specific
		     program.	For instance, the following command adds a key
		     sequence that quotes the  current	or  previous  word  in
		     bash:

		     $if Bash
		     # Quote the current or previous word
		     "\C-xq": "\eb\"\ef\""
		     $endif

       $endif This command, as seen in the previous example, terminates	an $if
	      command.

       $else  Commands in this branch of the $if directive are executed	if the
	      test fails.

       $include
	      This  directive takes a single filename as an argument and reads
	      commands and bindings from that file.  For example, the  follow-
	      ing directive would read /etc/inputrc:

	      $include	/etc/inputrc

SEARCHING
       Readline	 provides  commands  for searching through the command history
       for lines containing a specified	string.	 There are two	search	modes:
       incremental and non-incremental.

       Incremental  searches  begin  before  the  user has finished typing the
       search string.  As each character of the	search string is typed,	 read-
       line displays the next entry from the history matching the string typed
       so far.	An incremental search requires	only  as  many	characters  as
       needed  to  find	 the desired history entry.  To	search backward	in the
       history for a particular	string,	type C-r.  Typing C-s searches forward
       through	the  history.	The  characters	 present  in  the value	of the
       isearch-terminators variable  are  used	to  terminate  an  incremental
       search.	 If that variable has not been assigned	a value	the Escape and
       C-J characters will terminate an	incremental search.  C-G will abort an
       incremental  search  and	restore	the original line.  When the search is
       terminated, the history entry containing	the search string becomes  the
       current line.

       To  find	other matching entries in the history list, type C-s or	C-r as
       appropriate.  This will search backward or forward in the  history  for
       the  next  line matching	the search string typed	so far.	 Any other key
       sequence	bound to a readline command will terminate the search and exe-
       cute  that  command.  For instance, a newline will terminate the	search
       and accept the line, thereby executing the  command  from  the  history
       list.  A	movement command will terminate	the search, make the last line
       found the current line, and begin editing.

       Non-incremental searches	read the entire	search string before  starting
       to  search  for matching	history	lines.	The search string may be typed
       by the user or be part of the contents of the current line.

EDITING	COMMANDS
       The following is	a list of the names of the commands  and  the  default
       key sequences to	which they are bound.  Command names without an	accom-
       panying key sequence are	unbound	by default.

       In the following	descriptions, point refers to the current cursor posi-
       tion,  and  mark	refers to a cursor position saved by the set-mark com-
       mand.  The text between the point  and  mark  is	 referred  to  as  the
       region.

   Commands for	Moving
       beginning-of-line (C-a)
	      Move to the start	of the current line.
       end-of-line (C-e)
	      Move to the end of the line.
       forward-char (C-f)
	      Move forward a character.
       backward-char (C-b)
	      Move back	a character.
       forward-word (M-f)
	      Move forward to the end of the next word.	 Words are composed of
	      alphanumeric characters (letters and digits).
       backward-word (M-b)
	      Move back	to the start of	the current or previous	 word.	 Words
	      are composed of alphanumeric characters (letters and digits).
       clear-screen (C-l)
	      Clear  the  screen  leaving  the	current	line at	the top	of the
	      screen.  With an argument,  refresh  the	current	 line  without
	      clearing the screen.
       redraw-current-line
	      Refresh the current line.

   Commands for	Manipulating the History
       accept-line (Newline, Return)
	      Accept the line regardless of where the cursor is.  If this line
	      is non-empty, it may be added to the  history  list  for	future
	      recall  with  add_history().   If	the line is a modified history
	      line, the	history	line is	restored to its	original state.
       previous-history	(C-p)
	      Fetch the	previous command from the history list,	moving back in
	      the list.
       next-history (C-n)
	      Fetch  the next command from the history list, moving forward in
	      the list.
       beginning-of-history (M-<)
	      Move to the first	line in	the history.
       end-of-history (M->)
	      Move to the end of the input history, i.e., the  line  currently
	      being entered.
       reverse-search-history (C-r)
	      Search  backward	starting  at  the current line and moving `up'
	      through the  history  as	necessary.   This  is  an  incremental
	      search.
       forward-search-history (C-s)
	      Search  forward  starting	 at the	current	line and moving	`down'
	      through the  history  as	necessary.   This  is  an  incremental
	      search.
       non-incremental-reverse-search-history (M-p)
	      Search backward through the history starting at the current line
	      using a non-incremental search for  a  string  supplied  by  the
	      user.
       non-incremental-forward-search-history (M-n)
	      Search  forward  through	the  history  using  a non-incremental
	      search for a string supplied by the user.
       history-search-backward
	      Search backward through the history for the string of characters
	      between  the  start  of  the current line	and the	current	cursor
	      position (the point).  The  search  string  must	match  at  the
	      beginning	 of a history line.  This is a non-incremental search.
       history-search-forward
	      Search forward through the history for the string	of  characters
	      between the start	of the current line and	the point.  The	search
	      string must match	at the beginning of a history line.  This is a
	      non-incremental search.
       history-substring-search-backward
	      Search backward through the history for the string of characters
	      between the start	of the current line  and  the  current	cursor
	      position (the point).  The search	string may match anywhere in a
	      history line.  This is a non-incremental search.
       history-substring-search-forward
	      Search forward through the history for the string	of  characters
	      between the start	of the current line and	the point.  The	search
	      string may match anywhere	in a history line.   This  is  a  non-
	      incremental search.
       yank-nth-arg (M-C-y)
	      Insert  the  first argument to the previous command (usually the
	      second word on the previous line)	at point.  With	an argument n,
	      insert  the nth word from	the previous command (the words	in the
	      previous command	begin  with  word  0).	 A  negative  argument
	      inserts the nth word from	the end	of the previous	command.  Once
	      the argument n is	computed, the argument is extracted as if  the
	      "!n" history expansion had been specified.
       yank-last-arg (M-., M-_)
	      Insert  the last argument	to the previous	command	(the last word
	      of the previous history entry).  With a numeric argument,	behave
	      exactly  like  yank-nth-arg.   Successive	calls to yank-last-arg
	      move back	through	the history list, inserting the	last word  (or
	      the  word	 specified  by the argument to the first call) of each
	      line in turn.  Any numeric argument supplied to these successive
	      calls  determines	 the direction to move through the history.  A
	      negative argument	switches the  direction	 through  the  history
	      (back or forward).  The history expansion	facilities are used to
	      extract the last argument, as if the "!$"	history	expansion  had
	      been specified.

   Commands for	Changing Text
       end-of-file (usually C-d)
	      The  character  indicating  end-of-file  as set, for example, by
	      ``stty''.	 If this character is read when	there are  no  charac-
	      ters  on	the  line,  and	point is at the	beginning of the line,
	      Readline interprets it as	the end	of input and returns EOF.
       delete-char (C-d)
	      Delete the character at point.  If this function is bound	to the
	      same character as	the tty	EOF character, as C-d commonly is, see
	      above for	the effects.
       backward-delete-char (Rubout)
	      Delete the character behind the cursor.  When  given  a  numeric
	      argument,	save the deleted text on the kill ring.
       forward-backward-delete-char
	      Delete  the  character under the cursor, unless the cursor is at
	      the end of the line, in which case the character behind the cur-
	      sor is deleted.
       quoted-insert (C-q, C-v)
	      Add the next character that you type to the line verbatim.  This
	      is how to	insert characters like C-q, for	example.
       tab-insert (M-TAB)
	      Insert a tab character.
       self-insert (a, b, A, 1,	!, ...)
	      Insert the character typed.
       transpose-chars (C-t)
	      Drag the character before	point forward over  the	 character  at
	      point,  moving point forward as well.  If	point is at the	end of
	      the line,	then this transposes the two characters	before	point.
	      Negative arguments have no effect.
       transpose-words (M-t)
	      Drag  the	 word  before  point past the word after point,	moving
	      point over that word as well.  If	point is at  the  end  of  the
	      line, this transposes the	last two words on the line.
       upcase-word (M-u)
	      Uppercase	 the  current  (or  following)	word.  With a negative
	      argument,	uppercase the previous word, but do not	move point.
       downcase-word (M-l)
	      Lowercase	the current (or	 following)  word.   With  a  negative
	      argument,	lowercase the previous word, but do not	move point.
       capitalize-word (M-c)
	      Capitalize  the  current	(or  following)	word.  With a negative
	      argument,	capitalize the previous	word, but do not move point.
       overwrite-mode
	      Toggle overwrite mode.  With an explicit positive	numeric	 argu-
	      ment, switches to	overwrite mode.	 With an explicit non-positive
	      numeric argument,	switches to insert mode.  This command affects
	      only  emacs mode;	vi mode	does overwrite differently.  Each call
	      to readline() starts in insert mode.  In overwrite mode, charac-
	      ters  bound to self-insert replace the text at point rather than
	      pushing the text	to  the	 right.	  Characters  bound  to	 back-
	      ward-delete-char	replace	 the  character	 before	 point	with a
	      space.  By default, this command is unbound.

   Killing and Yanking
       kill-line (C-k)
	      Kill the text from point to the end of the line.
       backward-kill-line (C-x Rubout)
	      Kill backward to the beginning of	the line.
       unix-line-discard (C-u)
	      Kill backward from point to the  beginning  of  the  line.   The
	      killed text is saved on the kill-ring.
       kill-whole-line
	      Kill  all	 characters on the current line, no matter where point
	      is.
       kill-word (M-d)
	      Kill from	point the end of  the  current	word,  or  if  between
	      words,  to  the  end  of the next	word.  Word boundaries are the
	      same as those used by forward-word.
       backward-kill-word (M-Rubout)
	      Kill the word behind point.  Word	boundaries  are	 the  same  as
	      those used by backward-word.
       unix-word-rubout	(C-w)
	      Kill  the	 word behind point, using white	space as a word	bound-
	      ary.  The	killed text is saved on	the kill-ring.
       unix-filename-rubout
	      Kill the word behind point, using	 white	space  and  the	 slash
	      character	 as  the word boundaries.  The killed text is saved on
	      the kill-ring.
       delete-horizontal-space (M-\)
	      Delete all spaces	and tabs around	point.
       kill-region
	      Kill the text between the	point and  mark	 (saved	 cursor	 posi-
	      tion).  This text	is referred to as the region.
       copy-region-as-kill
	      Copy the text in the region to the kill buffer.
       copy-backward-word
	      Copy  the	word before point to the kill buffer.  The word	bound-
	      aries are	the same as backward-word.
       copy-forward-word
	      Copy the word following point to	the  kill  buffer.   The  word
	      boundaries are the same as forward-word.
       yank (C-y)
	      Yank the top of the kill ring into the buffer at point.
       yank-pop	(M-y)
	      Rotate  the kill ring, and yank the new top.  Only works follow-
	      ing yank or yank-pop.

   Numeric Arguments
       digit-argument (M-0, M-1, ..., M--)
	      Add this digit to	the argument already accumulating, or start  a
	      new argument.  M-- starts	a negative argument.
       universal-argument
	      This  is another way to specify an argument.  If this command is
	      followed by one or more digits, optionally with a	leading	 minus
	      sign,  those digits define the argument.	If the command is fol-
	      lowed by digits, executing  universal-argument  again  ends  the
	      numeric  argument, but is	otherwise ignored.  As a special case,
	      if this command is immediately followed by a character  that  is
	      neither  a  digit	or minus sign, the argument count for the next
	      command is multiplied by four.  The argument count is  initially
	      one,  so	executing this function	the first time makes the argu-
	      ment count four, a second	time makes the argument	count sixteen,
	      and so on.

   Completing
       complete	(TAB)
	      Attempt  to  perform  completion	on the text before point.  The
	      actual completion	performed is application-specific.  Bash,  for
	      instance,	 attempts  completion  treating	the text as a variable
	      (if the text begins with $), username (if	the text  begins  with
	      ~),  hostname (if	the text begins	with @), or command (including
	      aliases and functions) in	turn.  If none	of  these  produces  a
	      match,  filename	completion  is	attempted.   Gdb, on the other
	      hand, allows completion of program functions and variables,  and
	      only attempts filename completion	under certain circumstances.
       possible-completions (M-?)
	      List  the	 possible  completions of the text before point.  When
	      displaying completions, readline sets the	number of columns used
	      for  display to the value	of completion-display-width, the value
	      of the environment variable COLUMNS, or  the  screen  width,  in
	      that order.
       insert-completions (M-*)
	      Insert  all completions of the text before point that would have
	      been generated by	possible-completions.
       menu-complete
	      Similar to complete, but replaces	the word to be completed  with
	      a	 single	match from the list of possible	completions.  Repeated
	      execution	of menu-complete steps through the  list  of  possible
	      completions,  inserting  each  match in turn.  At	the end	of the
	      list of completions, the bell is rung (subject to	the setting of
	      bell-style) and the original text	is restored.  An argument of n
	      moves n positions	forward	in the list  of	 matches;  a  negative
	      argument	may  be	 used to move backward through the list.  This
	      command is intended to be	 bound	to  TAB,  but  is  unbound  by
	      default.
       menu-complete-backward
	      Identical	 to menu-complete, but moves backward through the list
	      of possible completions, as if menu-complete had	been  given  a
	      negative argument.  This command is unbound by default.
       delete-char-or-list
	      Deletes  the  character under the	cursor if not at the beginning
	      or end of	the line (like delete-char).  If at  the  end  of  the
	      line, behaves identically	to possible-completions.

   Keyboard Macros
       start-kbd-macro (C-x ()
	      Begin  saving  the  characters  typed  into the current keyboard
	      macro.
       end-kbd-macro (C-x ))
	      Stop saving the characters typed into the	current	keyboard macro
	      and store	the definition.
       call-last-kbd-macro (C-x	e)
	      Re-execute  the last keyboard macro defined, by making the char-
	      acters in	 the  macro  appear  as	 if  typed  at	the  keyboard.
	      print-last-kbd-macro () Print the	last keyboard macro defined in
	      a	format suitable	for the	inputrc	file.

   Miscellaneous
       re-read-init-file (C-x C-r)
	      Read in the contents of the inputrc file,	 and  incorporate  any
	      bindings or variable assignments found there.
       abort (C-g)
	      Abort  the  current editing command and ring the terminal's bell
	      (subject to the setting of bell-style).
       do-uppercase-version (M-a, M-b, M-x, ...)
	      If the metafied character	x is lowercase,	run the	 command  that
	      is bound to the corresponding uppercase character.
       prefix-meta (ESC)
	      Metafy the next character	typed.	ESC f is equivalent to Meta-f.
       undo (C-_, C-x C-u)
	      Incremental undo,	separately remembered for each line.
       revert-line (M-r)
	      Undo all changes made to this line.  This	is like	executing  the
	      undo  command  enough  times  to	return the line	to its initial
	      state.
       tilde-expand (M-&)
	      Perform tilde expansion on the current word.
       set-mark	(C-@, M-<space>)
	      Set the mark to the point.  If a numeric argument	 is  supplied,
	      the mark is set to that position.
       exchange-point-and-mark (C-x C-x)
	      Swap  the	 point	with the mark.	The current cursor position is
	      set to the saved position, and the old cursor position is	 saved
	      as the mark.
       character-search	(C-])
	      A	character is read and point is moved to	the next occurrence of
	      that character.  A negative count	searches for  previous	occur-
	      rences.
       character-search-backward (M-C-])
	      A	 character  is	read and point is moved	to the previous	occur-
	      rence of that character.	A negative count searches  for	subse-
	      quent occurrences.
       skip-csi-sequence
	      Read  enough  characters to consume a multi-key sequence such as
	      those defined for	keys like Home and End.	 Such sequences	 begin
	      with a Control Sequence Indicator	(CSI), usually ESC-[.  If this
	      sequence is bound	to "\[", keys producing	 such  sequences  will
	      have  no	effect	unless explicitly bound	to a readline command,
	      instead of inserting stray characters into the  editing  buffer.
	      This is unbound by default, but usually bound to ESC-[.
       insert-comment (M-#)
	      Without  a  numeric  argument,  the  value  of the readline com-
	      ment-begin variable is inserted at the beginning of the  current
	      line.  If	a numeric argument is supplied,	this command acts as a
	      toggle: if the characters	at the beginning of the	 line  do  not
	      match  the value of comment-begin, the value is inserted,	other-
	      wise the characters in comment-begin are deleted from the	begin-
	      ning  of the line.  In either case, the line is accepted as if a
	      newline had been typed.	The  default  value  of	 comment-begin
	      makes  the  current line a shell comment.	 If a numeric argument
	      causes the comment character to be removed,  the	line  will  be
	      executed by the shell.
       dump-functions
	      Print  all  of the functions and their key bindings to the read-
	      line output stream.  If a	numeric	argument is supplied, the out-
	      put  is  formatted  in such a way	that it	can be made part of an
	      inputrc file.
       dump-variables
	      Print all	of the settable	variables  and	their  values  to  the
	      readline	output stream.	If a numeric argument is supplied, the
	      output is	formatted in such a way	that it	can be made part of an
	      inputrc file.
       dump-macros
	      Print  all of the	readline key sequences bound to	macros and the
	      strings they output.  If a numeric  argument  is	supplied,  the
	      output is	formatted in such a way	that it	can be made part of an
	      inputrc file.
       emacs-editing-mode (C-e)
	      When in vi command mode, this causes a switch to	emacs  editing
	      mode.
       vi-editing-mode (M-C-j)
	      When  in	emacs editing mode, this causes	a switch to vi editing
	      mode.

DEFAULT	KEY BINDINGS
       The following is	a list of the default emacs and	vi bindings.   Charac-
       ters  with  the	eighth	bit  set are written as	M-<character>, and are
       referred	to as metafied characters.  The	printable ASCII	characters not
       mentioned  in  the  list	 of  emacs  standard bindings are bound	to the
       self-insert function, which just	inserts	the given character  into  the
       input line.  In vi insertion mode, all characters not specifically men-
       tioned are bound	to self-insert.	 Characters assigned to	signal genera-
       tion by stty(1) or the terminal driver, such as C-Z or C-C, retain that
       function.  Upper	and lower case metafied	characters are	bound  to  the
       same  function in the emacs mode	meta keymap.  The remaining characters
       are unbound, which causes readline to ring the  bell  (subject  to  the
       setting of the bell-style variable).

   Emacs Mode
	     Emacs Standard bindings

	     "C-@"  set-mark
	     "C-A"  beginning-of-line
	     "C-B"  backward-char
	     "C-D"  delete-char
	     "C-E"  end-of-line
	     "C-F"  forward-char
	     "C-G"  abort
	     "C-H"  backward-delete-char
	     "C-I"  complete
	     "C-J"  accept-line
	     "C-K"  kill-line
	     "C-L"  clear-screen
	     "C-M"  accept-line
	     "C-N"  next-history
	     "C-P"  previous-history
	     "C-Q"  quoted-insert
	     "C-R"  reverse-search-history
	     "C-S"  forward-search-history
	     "C-T"  transpose-chars
	     "C-U"  unix-line-discard
	     "C-V"  quoted-insert
	     "C-W"  unix-word-rubout
	     "C-Y"  yank
	     "C-]"  character-search
	     "C-_"  undo
	     " " to "/"	 self-insert
	     "0"  to "9"  self-insert
	     ":"  to "~"  self-insert
	     "C-?"  backward-delete-char

	     Emacs Meta	bindings

	     "M-C-G"  abort
	     "M-C-H"  backward-kill-word
	     "M-C-I"  tab-insert
	     "M-C-J"  vi-editing-mode
	     "M-C-M"  vi-editing-mode
	     "M-C-R"  revert-line
	     "M-C-Y"  yank-nth-arg
	     "M-C-["  complete
	     "M-C-]"  character-search-backward
	     "M-space"	set-mark
	     "M-#"  insert-comment
	     "M-&"  tilde-expand
	     "M-*"  insert-completions
	     "M--"  digit-argument
	     "M-."  yank-last-arg
	     "M-0"  digit-argument
	     "M-1"  digit-argument
	     "M-2"  digit-argument
	     "M-3"  digit-argument
	     "M-4"  digit-argument
	     "M-5"  digit-argument
	     "M-6"  digit-argument
	     "M-7"  digit-argument
	     "M-8"  digit-argument
	     "M-9"  digit-argument
	     "M-<"  beginning-of-history
	     "M-="  possible-completions
	     "M->"  end-of-history
	     "M-?"  possible-completions
	     "M-B"  backward-word
	     "M-C"  capitalize-word
	     "M-D"  kill-word
	     "M-F"  forward-word
	     "M-L"  downcase-word
	     "M-N"  non-incremental-forward-search-history
	     "M-P"  non-incremental-reverse-search-history
	     "M-R"  revert-line
	     "M-T"  transpose-words
	     "M-U"  upcase-word
	     "M-Y"  yank-pop
	     "M-\"  delete-horizontal-space
	     "M-~"  tilde-expand
	     "M-C-?"  backward-kill-word
	     "M-_"  yank-last-arg

	     Emacs Control-X bindings

	     "C-XC-G"  abort
	     "C-XC-R"  re-read-init-file
	     "C-XC-U"  undo
	     "C-XC-X"  exchange-point-and-mark
	     "C-X("  start-kbd-macro
	     "C-X)"  end-kbd-macro
	     "C-XE"  call-last-kbd-macro
	     "C-XC-?"  backward-kill-line

   VI Mode bindings
	     VI	Insert Mode functions

	     "C-D"  vi-eof-maybe
	     "C-H"  backward-delete-char
	     "C-I"  complete
	     "C-J"  accept-line
	     "C-M"  accept-line
	     "C-R"  reverse-search-history
	     "C-S"  forward-search-history
	     "C-T"  transpose-chars
	     "C-U"  unix-line-discard
	     "C-V"  quoted-insert
	     "C-W"  unix-word-rubout
	     "C-Y"  yank
	     "C-["  vi-movement-mode
	     "C-_"  undo
	     " " to "~"	 self-insert
	     "C-?"  backward-delete-char

	     VI	Command	Mode functions

	     "C-D"  vi-eof-maybe
	     "C-E"  emacs-editing-mode
	     "C-G"  abort
	     "C-H"  backward-char
	     "C-J"  accept-line
	     "C-K"  kill-line
	     "C-L"  clear-screen
	     "C-M"  accept-line
	     "C-N"  next-history
	     "C-P"  previous-history
	     "C-Q"  quoted-insert
	     "C-R"  reverse-search-history
	     "C-S"  forward-search-history
	     "C-T"  transpose-chars
	     "C-U"  unix-line-discard
	     "C-V"  quoted-insert
	     "C-W"  unix-word-rubout
	     "C-Y"  yank
	     "C-_"  vi-undo
	     " "  forward-char
	     "#"  insert-comment
	     "$"  end-of-line
	     "%"  vi-match
	     "&"  vi-tilde-expand
	     "*"  vi-complete
	     "+"  next-history
	     ","  vi-char-search
	     "-"  previous-history
	     "."  vi-redo
	     "/"  vi-search
	     "0"  beginning-of-line
	     "1" to "9"	 vi-arg-digit
	     ";"  vi-char-search
	     "="  vi-complete
	     "?"  vi-search
	     "A"  vi-append-eol
	     "B"  vi-prev-word
	     "C"  vi-change-to
	     "D"  vi-delete-to
	     "E"  vi-end-word
	     "F"  vi-char-search
	     "G"  vi-fetch-history
	     "I"  vi-insert-beg
	     "N"  vi-search-again
	     "P"  vi-put
	     "R"  vi-replace
	     "S"  vi-subst
	     "T"  vi-char-search
	     "U"  revert-line
	     "W"  vi-next-word
	     "X"  backward-delete-char
	     "Y"  vi-yank-to
	     "\"  vi-complete
	     "^"  vi-first-print
	     "_"  vi-yank-arg
	     "`"  vi-goto-mark
	     "a"  vi-append-mode
	     "b"  vi-prev-word
	     "c"  vi-change-to
	     "d"  vi-delete-to
	     "e"  vi-end-word
	     "f"  vi-char-search
	     "h"  backward-char
	     "i"  vi-insertion-mode
	     "j"  next-history
	     "k"  prev-history
	     "l"  forward-char
	     "m"  vi-set-mark
	     "n"  vi-search-again
	     "p"  vi-put
	     "r"  vi-change-char
	     "s"  vi-subst
	     "t"  vi-char-search
	     "u"  vi-undo
	     "w"  vi-next-word
	     "x"  vi-delete
	     "y"  vi-yank-to
	     "|"  vi-column
	     "~"  vi-change-case

SEE ALSO
       The Gnu Readline	Library, Brian Fox and Chet Ramey
       The Gnu History Library,	Brian Fox and Chet Ramey
       bash(1)

FILES
       ~/.inputrc
	      Individual readline initialization file

AUTHORS
       Brian Fox, Free Software	Foundation
       bfox@gnu.org

       Chet Ramey, Case	Western	Reserve	University
       chet.ramey@case.edu

BUG REPORTS
       If  you	find  a	bug in readline, you should report it.	But first, you
       should make sure	that it	really is a bug, and that it  appears  in  the
       latest version of the readline library that you have.

       Once  you have determined that a	bug actually exists, mail a bug	report
       to bug-readline@gnu.org.	 If you	have a fix, you	are  welcome  to  mail
       that  as	 well!	 Suggestions  and  `philosophical'  bug	reports	may be
       mailed to  bug-readline@gnu.org	or  posted  to	the  Usenet  newsgroup
       gnu.bash.bug.

       Comments	and bug	reports	concerning this	manual page should be directed
       to chet.ramey@case.edu.

BUGS
       It's too	big and	too slow.

GNU Readline 7.0	       2016 February 28			   READLINE(3)

NAME | SYNOPSIS | COPYRIGHT | DESCRIPTION | RETURN VALUE | NOTATION | INITIALIZATION FILE | SEARCHING | EDITING COMMANDS | DEFAULT KEY BINDINGS | SEE ALSO | FILES | AUTHORS | BUG REPORTS | BUGS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=readline&manpath=FreeBSD+11.2-RELEASE+and+Ports>

home | help