diff CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/share/man/man7/editline.7 @ 68:5028fdace37b

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 16:23:26 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/share/man/man7/editline.7	Tue Mar 18 16:23:26 2025 -0400
@@ -0,0 +1,1001 @@
+.TH EDITLINE 7 "April 6, 2024" ""
+.SH NAME
+\fBeditline\fP
+\- line editing user interface
+.SH DESCRIPTION
+When a program using the
+\fBeditline\fP(3)
+library prompts for an input string using the function
+\fBel_wgets\fP(3),
+it reads characters from the terminal.
+Invalid input bytes that do not form characters are silently
+discarded.
+For each character read, one editor command is executed.
+The mapping of input characters to editor commands depends on the
+editing mode.
+There are three editing modes: vi insert mode, vi command mode,
+and emacs mode.
+The default is vi insert mode.
+The program can switch the default to emacs mode by using the
+\fBel_set\fP(3)
+or
+\fBel_parse\fP(3)
+functions, and the user can switch to emacs mode either in the
+\fBeditrc\fP(5)
+configuration file or interactively with the
+\fBed-command\fP
+editor command, in all three cases executing the
+\fBbind Fl e\fP
+builtin command.
+
+If trying to read from the terminal results in end of file or an
+error, the library signals end of file to the program and does not
+return a string.
+.SS Input character bindings
+All default bindings described below can be overridden by individual
+programs and can be changed with the
+\fBeditrc\fP(5)
+\fBbind\fP
+builtin command.
+
+In the following tables,
+`Ctrl-'
+indicates a character with the bit 0x40 flipped, and
+`Meta-'
+indicates a character with the bit 0x80 set.
+In vi insert mode and in emacs mode, all Meta-characters considered
+printable by the current
+\fBlocale\fP(1)
+are bound to
+\fBed-insert\fP
+instead of to the editor command listed below.
+Consequently, in UTF-8 mode, most of the Meta-characters are not
+directly accessible because their code points are occupied by
+printable Unicode characters, and Meta-characters are usually input
+using the
+\fBem-meta-next\fP
+editor command.
+For example, to enter
+`Meta-B'
+in order to call the
+\fBed-prev-word\fP
+editor command in emacs mode, call
+\fBem-meta-next\fP
+by pressing and releasing the escape key (or equivalently, Ctrl-[),
+then press and release the
+`B'
+key.
+If you have configured a Meta-key on your keyboard, for example
+with
+`setxkbmap' -option altwin:left_meta_win ,
+the Ctrl-Meta-characters are directly accessible.
+For example, to enter
+`Ctrl-Meta-H'
+in order to call the
+\fBed-delete-prev-word\fP
+editor command in emacs mode, hold down the keys
+`Ctrl',
+`Meta',
+and
+`H'
+at the same time.
+Alternatively, press and release the escape key, then press and
+release
+`Ctrl-H'.
+
+In vi input mode, input characters are bound to the following editor
+commands by default:
+It Ctrl-D, EOF Ta \fBvi-list-or-eof\fP
+It Ctrl-H, BS Ta \fBvi-delete-prev-char\fP
+It Ctrl-J, LF Ta \fBed-newline\fP
+It Ctrl-M, CR Ta \fBed-newline\fP
+It Ctrl-Q Ta \fBed-tty-start-output\fP
+It Ctrl-S Ta \fBed-tty-stop-output\fP
+It Ctrl-U Ta \fBvi-kill-line-prev\fP
+It Ctrl-V Ta \fBed-quoted-insert\fP
+It Ctrl-W Ta \fBed-delete-prev-word\fP
+It Ctrl-[, ESC Ta \fBvi-command-mode\fP
+It Ctrl-\e, QUIT Ta \fBed-tty-sigquit\fP
+It Ctrl-?, DEL Ta \fBvi-delete-prev-char\fP
+
+All other input characters except the NUL character (Ctrl-@) are
+bound to
+\fBed-insert\fP.
+
+In vi command mode, input characters are bound to the following
+editor commands by default:
+It Ctrl-A Ta \fBed-move-to-beg\fP
+It Ctrl-C, INT Ta \fBed-tty-sigint\fP
+It Ctrl-E Ta \fBed-move-to-end\fP
+It Ctrl-H, BS Ta \fBed-delete-prev-char\fP
+It Ctrl-J, LF Ta \fBed-newline\fP
+It Ctrl-K Ta \fBed-kill-line\fP
+It Ctrl-L, FF Ta \fBed-clear-screen\fP
+It Ctrl-M, CR Ta \fBed-newline\fP
+It Ctrl-N Ta \fBed-next-history\fP
+It Ctrl-O Ta \fBed-tty-flush-output\fP
+It Ctrl-P Ta \fBed-prev-history\fP
+It Ctrl-Q Ta \fBed-tty-start-output\fP
+It Ctrl-R Ta \fBed-redisplay\fP
+It Ctrl-S Ta \fBed-tty-stop-output\fP
+It Ctrl-U Ta \fBvi-kill-line-prev\fP
+It Ctrl-W Ta \fBed-delete-prev-word\fP
+It Ctrl-[, ESC Ta \fBem-meta-next\fP
+It Ctrl-\e, QUIT Ta \fBed-tty-sigquit\fP
+It Space Ta \fBed-next-char\fP
+It # Ta \fBvi-comment-out\fP
+It $ Ta \fBed-move-to-end\fP
+It % Ta \fBvi-match\fP
+It + Ta \fBed-next-history\fP
+It \&, Ta \fBvi-repeat-prev-char\fP
+It - Ta \fBed-prev-history\fP
+It \&. Ta \fBvi-redo\fP
+It / Ta \fBvi-search-prev\fP
+It 0 Ta \fBvi-zero\fP
+It 1 to 9 Ta \fBed-argument-digit\fP
+It \&: Ta \fBed-command\fP
+It \&; Ta \fBvi-repeat-next-char\fP
+It \&? Ta \fBvi-search-next\fP
+It @ Ta \fBvi-alias\fP
+It A Ta \fBvi-add-at-eol\fP
+It B Ta \fBvi-prev-big-word\fP
+It C Ta \fBvi-change-to-eol\fP
+It D Ta \fBed-kill-line\fP
+It E Ta \fBvi-end-big-word\fP
+It F Ta \fBvi-prev-char\fP
+It G Ta \fBvi-to-history-line\fP
+It I Ta \fBvi-insert-at-bol\fP
+It J Ta \fBed-search-next-history\fP
+It K Ta \fBed-search-prev-history\fP
+It N Ta \fBvi-repeat-search-prev\fP
+It O Ta \fBed-sequence-lead-in\fP
+It P Ta \fBvi-paste-prev\fP
+It R Ta \fBvi-replace-mode\fP
+It S Ta \fBvi-substitute-line\fP
+It T Ta \fBvi-to-prev-char\fP
+It U Ta \fBvi-undo-line\fP
+It W Ta \fBvi-next-big-word\fP
+It X Ta \fBed-delete-prev-char\fP
+It Y Ta \fBvi-yank-end\fP
+It \&[ Ta \fBed-sequence-lead-in\fP
+It ^ Ta \fBed-move-to-beg\fP
+It _ Ta \fBvi-history-word\fP
+It a Ta \fBvi-add\fP
+It b Ta \fBvi-prev-word\fP
+It c Ta \fBvi-change-meta\fP
+It d Ta \fBvi-delete-meta\fP
+It e Ta \fBvi-end-word\fP
+It f Ta \fBvi-next-char\fP
+It h Ta \fBed-prev-char\fP
+It i Ta \fBvi-insert\fP
+It j Ta \fBed-next-history\fP
+It k Ta \fBed-prev-history\fP
+It l Ta \fBed-next-char\fP
+It n Ta \fBvi-repeat-search-next\fP
+It p Ta \fBvi-paste-next\fP
+It r Ta \fBvi-replace-char\fP
+It s Ta \fBvi-substitute-char\fP
+It t Ta \fBvi-to-next-char\fP
+It u Ta \fBvi-undo\fP
+It v Ta \fBvi-histedit\fP
+It w Ta \fBvi-next-word\fP
+It x Ta \fBed-delete-next-char\fP
+It y Ta \fBvi-yank\fP
+It \&| Ta \fBvi-to-column\fP
+It ~ Ta \fBvi-change-case\fP
+It Ctrl-?, DEL Ta \fBed-delete-prev-char\fP
+It Meta-O Ta \fBed-sequence-lead-in\fP
+It Meta-[ Ta \fBed-sequence-lead-in\fP
+
+In emacs mode, input characters are bound to the following editor
+commands by default:
+It 0 to 9 Ta \fBed-digit\fP
+It Ctrl-@, NUL Ta \fBem-set-mark\fP
+It Ctrl-A Ta \fBed-move-to-beg\fP
+It Ctrl-B Ta \fBed-prev-char\fP
+It Ctrl-C, INT Ta \fBed-tty-sigint\fP
+It Ctrl-D, EOF Ta \fBem-delete-or-list\fP
+It Ctrl-E Ta \fBed-move-to-end\fP
+It Ctrl-F Ta \fBed-next-char\fP
+It Ctrl-H, BS Ta \fBem-delete-prev-char\fP
+It Ctrl-J, LF Ta \fBed-newline\fP
+It Ctrl-K Ta \fBed-kill-line\fP
+It Ctrl-L, FF Ta \fBed-clear-screen\fP
+It Ctrl-M, CR Ta \fBed-newline\fP
+It Ctrl-N Ta \fBed-next-history\fP
+It Ctrl-O Ta \fBed-tty-flush-output\fP
+It Ctrl-P Ta \fBed-prev-history\fP
+It Ctrl-Q Ta \fBed-tty-start-output\fP
+It Ctrl-R Ta \fBed-redisplay\fP
+It Ctrl-S Ta \fBed-tty-stop-output\fP
+It Ctrl-T Ta \fBed-transpose-chars\fP
+It Ctrl-U Ta \fBed-kill-line\fP
+It Ctrl-V Ta \fBed-quoted-insert\fP
+It Ctrl-W Ta \fBem-kill-region\fP
+It Ctrl-X Ta \fBed-sequence-lead-in\fP
+It Ctrl-Y Ta \fBem-yank\fP
+It Ctrl-Z, TSTP Ta \fBed-tty-sigtstp\fP
+It Ctrl-[, ESC Ta \fBem-meta-next\fP
+It Ctrl-\e, QUIT Ta \fBed-tty-sigquit\fP
+It Ctrl-] Ta \fBed-tty-dsusp\fP
+It Ctrl-?, DEL Ta \fBem-delete-prev-char\fP
+It Ctrl-Meta-H Ta \fBed-delete-prev-word\fP
+It Ctrl-Meta-L Ta \fBed-clear-screen\fP
+It Ctrl-Meta-_ Ta \fBem-copy-prev-word\fP
+It Meta-0 to 9 Ta \fBed-argument-digit\fP
+It Meta-B Ta \fBed-prev-word\fP
+It Meta-C Ta \fBem-capitol-case\fP
+It Meta-D Ta \fBem-delete-next-word\fP
+It Meta-F Ta \fBem-next-word\fP
+It Meta-L Ta \fBem-lower-case\fP
+It Meta-N Ta \fBed-search-next-history\fP
+It Meta-O Ta \fBed-sequence-lead-in\fP
+It Meta-P Ta \fBed-search-prev-history\fP
+It Meta-U Ta \fBem-upper-case\fP
+It Meta-W Ta \fBem-copy-region\fP
+It Meta-X Ta \fBed-command\fP
+It Meta-[ Ta \fBed-sequence-lead-in\fP
+It Meta-b Ta \fBed-prev-word\fP
+It Meta-c Ta \fBem-capitol-case\fP
+It Meta-d Ta \fBem-delete-next-word\fP
+It Meta-f Ta \fBem-next-word\fP
+It Meta-l Ta \fBem-lower-case\fP
+It Meta-n Ta \fBed-search-next-history\fP
+It Meta-p Ta \fBed-search-prev-history\fP
+It Meta-u Ta \fBem-upper-case\fP
+It Meta-w Ta \fBem-copy-region\fP
+It Meta-x Ta \fBed-command\fP
+It Ctrl-Meta-? Ta \fBed-delete-prev-word\fP
+
+The remaining
+\fBascii\fP(7)
+characters in the range 0x20 to 0x7e are bound to
+\fBed-insert\fP.
+
+If standard output is not connected to a terminal device
+or
+\fBel_set\fP(3)
+was used to set
+EL_EDITMODE
+to 0, all input character bindings are disabled and all characters
+typed are appended to the edit buffer.
+In that case, the edit buffer is returned to the program after a
+newline or carriage return character is typed, or after the first
+character typed if
+\fBel_set\fP(3)
+was used to set
+EL_UNBUFFERED
+to non-zero.
+.SS Editor commands
+Most editor commands accept an optional argument.
+The argument is entered by prefixing the editor command with one
+or more of the editor commands
+\fBed-argument-digit\fP,
+\fBed-digit\fP,
+\fBem-universal-argument\fP,
+or
+\fBvi-zero\fP.
+When an argument is not provided, it defaults to 1.
+For most editor commands, the effect of an argument is to repeatedly
+execute the command that number of times.
+
+When talking about a character string from a left character to a
+right character, the left character is included in the string, while
+the right character is not included.
+
+If an editor command causes an error, the input character is discarded,
+no action occurs, and the terminal bell is rung.
+In case of a non-fatal error, the terminal bell is also rung,
+but the editor command takes effect anyway.
+
+In the following list, the default key bindings are listed after
+each editor command.
+.TP
+\fBed-argument-digit Pq vi command: 1 to 9; emacs: Meta-0 to Meta-9\fP
+If in argument input mode, append the input digit to the argument
+being read.
+Otherwise, switch to argument input mode and use the input digit
+as the most significant digit of the argument.
+It is an error if the input character is not a digit or if the
+existing argument is already greater than a million.
+.TP
+\fBed-clear-screen Pq vi command: Ctrl-L; emacs: Ctrl-L, Ctrl-Meta-L\fP
+Clear the screen and display the edit buffer at the top.
+Ignore any argument.
+.TP
+\fBed-command Pq vi command: So \&: Sc ; emacs: Meta-X, Meta-x\fP
+Read a line from the terminal bypassing the normal line editing
+functionality and execute that line as an
+\fBeditrc\fP(5)
+builtin command.
+If in vi command mode, also switch back to vi insert mode.
+Ignore any argument.
+.TP
+\fBed-delete-next-char Pq vi command: x\fP
+Delete the character at the cursor position.
+With an argument, delete that number of characters.
+In emacs mode, it is an error if the cursor is at the end of the
+edit buffer.
+In vi mode, the last character in the edit buffer is deleted in
+that case, and it is an error if the buffer is empty.
+.TP
+\fBed-delete-prev-char Pq vi command: X, Ctrl-H, BS, Ctrl-?, DEL\fP
+Delete the character to the left of the cursor position.
+With an argument, delete that number of characters.
+It is an error if the cursor is at the beginning of the edit buffer.
+.TP
+\fBed-delete-prev-word Pq vi: Ctrl-W; emacs: Ctrl-Meta-H, Ctrl-Meta-?\fP
+Move to the left to the closest beginning of a word, delete the
+string from that position to the cursor, and save it to the cut
+buffer.
+With an argument, delete that number of words.
+It is an error if the cursor is at the beginning of the edit buffer.
+.TP
+\fBed-digit Pq emacs: 0 to 9\fP
+If in argument input mode, append the input digit to the argument
+being read.
+Otherwise, call
+\fBed-insert\fP.
+It is an error if the input character is not a digit or if the
+existing argument is already greater than a million.
+.TP
+\fBed-end-of-file Pq not bound by default\fP
+Discard the edit buffer and indicate end of file to the program.
+Ignore any argument.
+.TP
+\fBed-ignore Pq various\fP
+Discard the input character and do nothing.
+.TP
+\fBed-insert Pq vi input: almost all; emacs: printable characters\fP
+In insert mode, insert the input character left of the cursor
+position.
+In replace mode, overwrite the character at the cursor and move the
+cursor to the right by one character position.
+Accept an argument to do this repeatedly.
+It is an error if the input character is the NUL character (Ctrl-@).
+Failure to enlarge the edit buffer also results in an error.
+.TP
+\fBed-kill-line Pq vi command: D, Ctrl-K; emacs: Ctrl-K, Ctrl-U\fP
+Delete the string from the cursor position to the end of the line
+and save it to the cut buffer.
+Ignore any argument.
+.TP
+\fBed-move-to-beg Pq vi command: ^, Ctrl-A; emacs: Ctrl-A\fP
+In vi mode, move the cursor to the first non-space character in the
+edit buffer.
+In emacs mode, move the cursor to the beginning of the edit buffer.
+Ignore any argument.
+Can be used as a movement command after
+\fBvi_change_meta\fP,
+\fBvi_delete_meta\fP,
+or
+\fBvi_yank\fP.
+.TP
+\fBed-move-to-end Pq vi command: $, Ctrl-E; emacs: Ctrl-E\fP
+Move the cursor to the end of the edit buffer.
+Ignore any argument.
+Can be used as a movement command after
+\fBvi_change_meta\fP,
+\fBvi_delete_meta\fP,
+or
+\fBvi_yank\fP.
+.TP
+\fBed-newline Pq all modes: Ctrl-J, LF, Ctrl-M, CR\fP
+Append a newline character to the edit buffer and return the edit
+buffer to the program.
+Ignore any argument.
+.TP
+\fBed-next-char Pq vi command: Space, l; emacs: Ctrl-F\fP
+Move the cursor one character position to the right.
+With an argument, move by that number of characters.
+Can be used as a movement command after
+\fBvi_change_meta\fP,
+\fBvi_delete_meta\fP,
+or
+\fBvi_yank\fP.
+It is an error if the cursor is already at the end of the edit
+buffer.
+.TP
+\fBed-next-history Pq vi command: j, +, Ctrl-N; emacs: Ctrl-N\fP
+Replace the edit buffer with the next history line.
+That line is older than the current line.
+With an argument, go forward by that number of history lines.
+It is a non-fatal error to advance by more lines than are available.
+.TP
+\fBed-next-line Pq not bound by default\fP
+Move the cursor down one line.
+With an argument, move down by that number of lines.
+It is an error if the edit buffer does not contain enough newline
+characters to the right of the cursor position.
+.TP
+\fBed-prev-char Pq vi command: h; emacs: Ctrl-B\fP
+Move the cursor one character position to the left.
+With an argument, move by that number of characters.
+Can be used as a movement command after
+\fBvi_change_meta\fP,
+\fBvi_delete_meta\fP,
+or
+\fBvi_yank\fP.
+It is an error if the cursor is already at the beginning of the
+edit buffer.
+.TP
+\fBed-prev-history Pq vi command: k, -, Ctrl-P; emacs: Ctrl-P\fP
+Replace the edit buffer with the previous history line.
+That line is newer than the current line.
+With an argument, go back by that number of lines.
+It is a non-fatal error to back up by more lines than are available.
+.TP
+\fBed-prev-line Pq not bound by default\fP
+Move the cursor up one line.
+With an argument, move up by that number of lines.
+It is an error if the edit buffer does not contain enough newline
+characters to the left of the cursor position.
+.TP
+\fBed-prev-word Pq emacs: Meta-B, Meta-b\fP
+Move the cursor to the left to the closest beginning of a word.
+With an argument, repeat that number of times.
+Can be used as a movement command after
+\fBvi_change_meta\fP,
+\fBvi_delete_meta\fP,
+or
+\fBvi_yank\fP.
+It is an error if the cursor is already at the beginning of the
+edit buffer.
+.TP
+\fBed-quoted-insert Pq vi insert, emacs: Ctrl-V\fP
+Read one character from the terminal bypassing the normal line
+editing functionality and call
+\fBed-insert\fP
+on it.
+If trying to read the character returns end of file or an error,
+call
+\fBed-end-of-file\fP
+instead.
+.TP
+\fBed-redisplay Pq vi command, emacs: Ctrl-R\fP
+Redisplay everything.
+Ignore any argument.
+.TP
+\fBed-search-next-history Pq vi command: J; emacs: Meta-N, Meta-n\fP
+Replace the edit buffer with the next matching history entry.
+.TP
+\fBed-search-prev-history Pq vi command: K; emacs: Meta-P, Meta-p\fP
+Replace the edit buffer with the previous matching history entry.
+.TP
+\fBed-sequence-lead-in Pq vi cmd: O, \&[; emacs: Ctrl-X;\\fP
+ both: Meta-O, Meta-[
+Call a macro.
+See the section about
+.B Macros
+below for details.
+.TP
+\fBed-start-over Pq not bound by default\fP
+Discard the contents of the edit buffer and start from scratch.
+Ignore any argument.
+.TP
+\fBed-transpose-chars Pq emacs: Ctrl-T\fP
+Exchange the character at the cursor position with the one to the
+left of it and move the cursor to the character to the right of the
+two exchanged characters.
+Ignore any argument.
+It is an error if the cursor is at the beginning of the edit buffer
+or if the edit buffer contains less than two characters.
+.TP
+\fBed-unassigned Pq all characters not listed\fP
+This editor command always results in an error.
+.TP
+\fBem-capitol-case Pq emacs: Meta-C, Meta-c\fP
+Capitalize the string from the cursor to the end of the current
+word.
+That is, if it contains at least one alphabetic character, convert
+the first alphabetic character to upper case, and convert all
+characters to the right of it to lower case.
+In any case, move the cursor to the next character after the end
+of the current word.
+.TP
+\fBem-copy-prev-word Pq emacs: Ctrl-Meta-_\fP
+Copy the string from the beginning of the current word to the cursor
+and insert it to the left of the cursor.
+Move the cursor to the character after the inserted string.
+It is an error if the cursor is at the beginning of the edit buffer.
+.TP
+\fBem-copy-region Pq emacs: Meta-W, Meta-w\fP
+Copy the string from the cursor to the mark to the cut buffer.
+It is an error if the mark is not set.
+.TP
+\fBem-delete-next-word Pq emacs: Meta-D, Meta-d\fP
+Delete the string from the cursor to the end of the current word
+and save it to the cut buffer.
+It is an error if the cursor is at the end of the edit buffer.
+.TP
+\fBem-delete-or-list Pq emacs: Ctrl-D, EOF\fP
+If the cursor is not at the end of the line, delete the character
+at the cursor.
+If the edit buffer is empty, indicate end of file to the program.
+It is an error if the cursor is at the end of the edit buffer and
+the edit buffer is not empty.
+.TP
+\fBem-delete-prev-char Pq emacs: Ctrl-H, BS, Ctrl-?, DEL\fP
+Delete the character to the left of the cursor.
+It is an error if the cursor is at the beginning of the edit buffer.
+.TP
+\fBem-exchange-mark Pq not bound by default\fP
+Exchange the cursor and the mark.
+.TP
+\fBem-gosmacs-transpose Pq not bound by default\fP
+Exchange the two characters to the left of the cursor.
+It is an error if the cursor is on the first or second character
+of the edit buffer.
+.TP
+\fBem-inc-search-next Pq not bound by default\fP
+Emacs incremental next search.
+.TP
+\fBem-inc-search-prev Pq not bound by default\fP
+Emacs incremental reverse search.
+.TP
+\fBem-kill-line Pq not bound by default\fP
+Delete the entire contents of the edit buffer and save it to the
+cut buffer.
+.TP
+\fBem-kill-region Pq emacs: Ctrl-W\fP
+Delete the string from the cursor to the mark and save it to the
+cut buffer.
+It is an error if the mark is not set.
+.TP
+\fBem-lower-case Pq emacs: Meta-L, Meta-l\fP
+Convert the characters from the cursor to the end of the current
+word to lower case.
+.TP
+\fBem-meta-next Pq vi command, emacs: Ctrl-[, ESC\fP
+Set the bit 0x80 on the next character typed.
+Unless the resulting code point is printable, holding down the
+`Meta-'
+key while typing that character is a simpler way to achieve the
+same effect.
+.TP
+\fBem-next-word Pq Meta-F, Meta-f\fP
+Move the cursor to the end of the current word.
+Can be used as a movement command after
+\fBvi_change_meta\fP,
+\fBvi_delete_meta\fP,
+or
+\fBvi_yank\fP.
+It is an error if the cursor is already at the end of the edit
+buffer.
+.TP
+\fBem-set-mark Pq emacs: Ctrl-Q, NUL\fP
+Set the mark at the current cursor position.
+.TP
+\fBem-toggle-overwrite Pq insert\fP
+Switch from insert to overwrite mode or vice versa.
+.TP
+\fBem-universal-argument Pq not bound by default\fP
+If in argument input mode, multiply the argument by 4.
+Otherwise, switch to argument input mode and set the argument to 4.
+It is an error if the existing argument is already greater than a
+million.
+.TP
+\fBem-upper-case Pq emacs: Meta-U, Meta-u\fP
+Convert the characters from the cursor to the end of the current
+word to upper case.
+.TP
+\fBem-yank Pq emacs: Ctrl-Y\fP
+Paste the cut buffer to the left of the cursor.
+.TP
+\fBvi-add Pq vi command: a\fP
+Switch to vi insert mode.
+Unless the cursor is already at the end of the edit buffer, move
+it one character position to the right.
+.TP
+\fBvi-add-at-eol Pq vi command: A\fP
+Switch to vi insert mode and move the cursor to the end of the edit
+buffer.
+.TP
+\fBvi-alias Pq vi command: @\fP
+If an alias function was defined by calling the
+\fBel_set\fP(3)
+or
+\fBel_wset\fP(3)
+function with the argument
+EL_ALIAS_TEXT ,
+read one character from the terminal bypassing the normal line
+editing functionality, call the alias function passing the argument that was specified with
+EL_ALIAS_TEXT
+as the first argument and the character read, with an underscore
+prepended, as the second argument, and pass the string returned
+from the alias function to
+\fBel_wpush\fP(3).
+It is an error if no alias function is defined or if trying to read
+the character results in end of file or an error.
+.TP
+\fBvi-change-case Pq vi command: ~\fP
+Change the case of the character at the cursor and move the cursor
+one character position to the right.
+It is an error if the cursor is already at the end of the edit
+buffer.
+.TP
+\fBvi-change-meta Pq vi command: c\fP
+Delete the string from the cursor to the position specified by the
+following movement command and save a copy of it to the cut buffer.
+When given twice in a row, instead delete the whole contents of the
+edit buffer and save a copy of it to the cut buffer.
+In either case, switch to vi insert mode after that.
+.TP
+\fBvi-change-to-eol Pq vi command: C\fP
+Delete the string from the cursor position to the end of the line
+and save it to the cut buffer, then switch to vi insert mode.
+.TP
+\fBvi-command-mode Pq vi insert: Ctrl-[, ESC\fP
+Discard pending actions and arguments and switch to vi command mode.
+Unless the cursor is already at the beginning of the edit buffer,
+move it to the left by one character position.
+.TP
+\fBvi-comment-out Pq vi command: #\fP
+Insert a
+`#'
+character at the beginning of the edit buffer and return the edit
+buffer to the program.
+.TP
+\fBvi-delete-meta Pq vi command: d\fP
+Delete the string from the cursor to the position specified by the
+following movement command and save a copy of it to the cut buffer.
+When given twice in a row, instead delete the whole contents of the
+edit buffer and save a copy of it to the cut buffer.
+.TP
+\fBvi-delete-prev-char Pq vi insert: Ctrl-H, BS, Ctrl-?, DEL\fP
+Delete the character to the left of the cursor.
+It is an error if the cursor is already at the beginning of the
+edit buffer.
+.TP
+\fBvi-end-big-word Pq vi command: E\fP
+Move the cursor to the end of the current space delimited word.
+Can be used as a movement command after
+\fBvi_change_meta\fP,
+\fBvi_delete_meta\fP,
+or
+\fBvi_yank\fP.
+It is an error if the cursor is already at the end of the edit
+buffer.
+.TP
+\fBvi-end-word Pq vi command: e\fP
+Move the cursor to the end of the current word.
+Can be used as a movement command after
+\fBvi_change_meta\fP,
+\fBvi_delete_meta\fP,
+or
+\fBvi_yank\fP.
+It is an error if the cursor is already at the end of the edit
+buffer.
+.TP
+\fBvi-history-word Pq vi command: _\fP
+Insert the first word from the most recent history entry after the
+cursor, move the cursor after to the character after the inserted
+word, and switch to vi insert mode.
+It is an error if there is no history entry or the most recent
+history entry is empty.
+.TP
+\fBvi-insert Pq vi command: i\fP
+Enter insert mode.
+.TP
+\fBvi-insert-at-bol Pq vi command: I\fP
+Move the cursor to the beginning of the edit buffer and switch to
+vi insert mode.
+.TP
+\fBvi-kill-line-prev Pq vi: Ctrl-U\fP
+Delete the string from the beginning of the edit buffer to the
+cursor and save it to the cut buffer.
+.TP
+\fBvi-list-or-eof Pq vi insert: Ctrl-D, EOF\fP
+If the edit buffer is empty, indicate end of file to the program.
+It is an error if the edit buffer is not empty.
+.TP
+\fBvi-match Pq vi command: %\fP
+Consider opening and closing parentheses, braces, and brackets as
+delimiters.
+If the cursor is not at a delimiter, move it to the right until it
+gets to one, then move it to the matching delimiter.
+Can be used as a movement command after
+\fBvi_change_meta\fP,
+\fBvi_delete_meta\fP,
+or
+\fBvi_yank\fP.
+It is an error if there is no delimiter at the cursor or in the
+string to the right of the cursor, or if the first such delimiter
+has no matching delimiter.
+.TP
+\fBvi-next-big-word Pq vi command: W\fP
+Move the cursor to the right to the beginning of the next space
+delimited word.
+Can be used as a movement command after
+\fBvi_change_meta\fP,
+\fBvi_delete_meta\fP,
+or
+\fBvi_yank\fP.
+It is an error if the cursor is already at the end of the edit
+buffer or on its last character.
+.TP
+\fBvi-next-char Pq vi command: f\fP
+Read one character from the terminal bypassing the normal line
+editing functionality and move the cursor to the right to the next
+instance of that character in the edit buffer.
+Can be used as a movement command after
+\fBvi_change_meta\fP,
+\fBvi_delete_meta\fP,
+or
+\fBvi_yank\fP.
+If trying to read the character results in end of file or an error,
+call
+\fBed-end-of-file\fP
+instead.
+It is an error if the character is not found searching to the right
+in the edit buffer.
+.TP
+\fBvi-next-word Pq vi command: w\fP
+Move the cursor to the right to the beginning of the next word.
+Can be used as a movement command after
+\fBvi_change_meta\fP,
+\fBvi_delete_meta\fP,
+or
+\fBvi_yank\fP.
+It is an error if the cursor is already at the end of the edit
+buffer or on its last character.
+.TP
+\fBvi-paste-next Pq vi command: p\fP
+Insert a copy of the cut buffer to the right of the cursor.
+It is an error if the cut buffer is empty.
+.TP
+\fBvi-paste-prev Pq vi command: P\fP
+Insert a copy of the cut buffer to the left of the cursor.
+It is an error if the cut buffer is empty.
+.TP
+\fBvi-prev-big-word Pq vi command: B\fP
+Move the cursor to the left to the next beginning of a space delimited
+word.
+Can be used as a movement command after
+\fBvi_change_meta\fP,
+\fBvi_delete_meta\fP,
+or
+\fBvi_yank\fP.
+It is an error if the cursor is already at the beginning of the
+edit buffer.
+.TP
+\fBvi-prev-char Pq vi command: F\fP
+Read one character from the terminal bypassing the normal line
+editing functionality and move the cursor to the left to the next
+instance of that character in the edit buffer.
+Can be used as a movement command after
+\fBvi_change_meta\fP,
+\fBvi_delete_meta\fP,
+or
+\fBvi_yank\fP.
+If trying to read the character results in end of file or an error,
+call
+\fBed-end-of-file\fP
+instead.
+It is an error if the character is not found searching to the left
+in the edit buffer.
+.TP
+\fBvi-prev-word Pq vi command: b\fP
+Move the cursor to the left to the next beginning of a word.
+Can be used as a movement command after
+\fBvi_change_meta\fP,
+\fBvi_delete_meta\fP,
+or
+\fBvi_yank\fP.
+It is an error if the cursor is already at the beginning of the
+edit buffer.
+.TP
+\fBvi-redo Pq vi command: Sq \&.\fP
+Redo the last non-motion command.
+.TP
+\fBvi-repeat-next-char Pq vi command: Sq \&;\fP
+Repeat the most recent character search in the same search direction.
+Can be used as a movement command after
+\fBvi_change_meta\fP,
+\fBvi_delete_meta\fP,
+or
+\fBvi_yank\fP.
+.TP
+\fBvi-repeat-prev-char Pq vi command: Sq \&,\fP
+Repeat the most recent character search in the opposite search
+direction.
+Can be used as a movement command after
+\fBvi_change_meta\fP,
+\fBvi_delete_meta\fP,
+or
+\fBvi_yank\fP.
+.TP
+\fBvi-repeat-search-next Pq vi command: n\fP
+Repeat the most recent history search in the same search direction.
+.TP
+\fBvi-repeat-search-prev Pq vi command: N\fP
+Repeat the most recent history search in the opposite search
+direction.
+.TP
+\fBvi-replace-char Pq vi command: r\fP
+Switch to vi replace mode, and automatically switch back to vi
+command mode after the next character typed.
+See
+\fBed-insert\fP
+for a description of replace mode.
+It is an error if the cursor is at the end of the edit buffer.
+.TP
+\fBvi-replace-mode Pq vi command: R\fP
+Switch to vi replace mode.
+This is a variant of vi insert mode; see
+\fBed-insert\fP
+for the difference.
+.TP
+\fBvi-search-next Pq vi command: \&?\fP
+Replace the edit buffer with the next matching history entry.
+.TP
+\fBvi-search-prev Pq vi command: /\fP
+Replace the edit buffer with the previous matching history entry.
+.TP
+\fBvi-substitute-char Pq vi command: s\fP
+Delete the character at the cursor and switch to vi insert mode.
+.TP
+\fBvi-substitute-line Pq vi command: S\fP
+Delete the entire contents of the edit buffer, save a copy of it
+in the cut buffer, and enter vi insert mode.
+.TP
+\fBvi-to-column Pq vi command: \&|\fP
+Move the cursor to the column specified as the argument.
+Can be used as a movement command after
+\fBvi_change_meta\fP,
+\fBvi_delete_meta\fP,
+or
+\fBvi_yank\fP.
+.TP
+\fBvi-to-history-line Pq vi command: G\fP
+Replace the edit buffer with the specified history entry.
+.TP
+\fBvi-to-next-char Pq vi command: t\fP
+Read one character from the terminal bypassing the normal line
+editing functionality and move the cursor to the right to the
+character before the next instance of that character in the edit
+buffer.
+Can be used as a movement command after
+\fBvi_change_meta\fP,
+\fBvi_delete_meta\fP,
+or
+\fBvi_yank\fP.
+If trying to read the character results in end of file or an error,
+call
+\fBed-end-of-file\fP
+instead.
+It is an error if the character is not found searching to the right
+in the edit buffer.
+.TP
+\fBvi-to-prev-char Pq vi command: T\fP
+Read one character from the terminal bypassing the normal line
+editing functionality and move the cursor to the left to the character
+after the next instance of that character in the edit buffer.
+Can be used as a movement command after
+\fBvi_change_meta\fP,
+\fBvi_delete_meta\fP,
+or
+\fBvi_yank\fP.
+If trying to read the character results in end of file or an error,
+call
+\fBed-end-of-file\fP
+instead.
+It is an error if the character is not found searching to the left
+in the edit buffer.
+.TP
+\fBvi-undo Pq vi command: u\fP
+Undo the last change.
+.TP
+\fBvi-undo-line Pq vi command: U\fP
+Undo all changes to the edit buffer.
+.TP
+\fBvi-yank Pq vi command: y\fP
+Copy the string from the cursor to the position specified by the
+following movement command to the cut buffer.
+When given twice in a row, instead copy the whole contents of the
+edit buffer to the cut buffer.
+.TP
+\fBvi-yank-end Pq vi command: Y\fP
+Copy the string from the cursor to the end of the edit buffer to
+the cut buffer.
+.TP
+\fBvi-zero Pq vi command: 0\fP
+If in argument input mode, multiply the argument by ten.
+Otherwise, move the cursor to the beginning of the edit buffer.
+Can be used as a movement command after
+\fBvi_change_meta\fP,
+\fBvi_delete_meta\fP,
+or
+\fBvi_yank\fP.
+.SS Macros
+If an input character is bound to the editor command
+\fBed-sequence-lead-in\fP,
+\fBeditline\fP
+attempts to call a macro.
+If the input character by itself forms the name of a macro, that
+macro is executed.
+Otherwise, additional input characters are read until the string
+read forms the name of a macro, in which case that macro is executed,
+or until the string read matches the beginning of none of the existing
+macro names, in which case the string including the final, mismatching
+character is discarded and the terminal bell is rung.
+
+There are two kinds of macros.
+Command macros execute a single editor command.
+Keyboard macros return a string of characters that is appended
+as a new line to the
+.B Input Queue .
+
+The following command macros are defined by default in vi command
+mode and in emacs mode:
+It Esc \&[ A, Esc O A Ta \fBed-prev-history\fP
+It Esc \&[ B, Esc O B Ta \fBed-next-history\fP
+It Esc \&[ C, Esc O C Ta \fBed-next-char\fP
+It Esc \&[ D, Esc O D Ta \fBed-prev-char\fP
+It Esc \&[ F, Esc O F Ta \fBed-move-to-end\fP
+It Esc \&[ H, Esc O H Ta \fBed-move-to-beg\fP
+
+In vi command mode, they are also defined by default without the
+initial escape character.
+
+In addition, the
+\fBeditline\fP
+library tries to bind the strings generated by the arrow keys
+as reported by the
+\fBterminfo\fP(5)
+database to these editor commands, unless that would clobber
+user settings.
+
+In emacs mode, the two-character string
+``Ctrl-X Ctrl-X''
+is bound to the
+\fBem-exchange-mark\fP
+editor command.
+.SS Input Queue
+The
+\fBeditline\fP
+library maintains an input queue operated in FIFO mode.
+Whenever it needs an input character, it takes the first character
+from the first line of the input queue.
+When the queue is empty, it reads from the terminal.
+
+A line can be appended to the end of the input queue in several ways:
+It
+By calling one of the keyboard
+.B Macros .
+It
+By calling the editor command
+\fBvi-redo\fP.
+It
+By calling the editor command
+\fBvi-alias\fP.
+It
+By pressing a key in emacs incremental search mode that doesn't
+have a special meaning in that mode but returns to normal emacs
+mode.
+It
+If an application program directly calls the functions
+\fBel_push\fP(3)
+or
+\fBel_wpush\fP(3),
+it can provide additional, program-specific ways
+of appending to the input queue.
+.SH SEE ALSO
+\fBmg\fP(1),
+\fBvi\fP(1),
+\fBeditline\fP(3),
+\fBel_wgets\fP(3),
+\fBel_wpush\fP(3),
+\fBel_wset\fP(3),
+\fBeditrc\fP(5)
+.SH HISTORY
+This manual page first appeared in
+Ox 6.0
+and
+Nx 8 .
+.SH AUTHORS
+
+-nosplit
+This manual page was written by
+
+Ingo Schwarze <Mt schwarze@openbsd.org .>