From 2a0976b40a2b3888f9ba9f2d047f81b98837dc58 Mon Sep 17 00:00:00 2001 From: June McEnroe Date: Fri, 28 Jun 2019 22:28:32 -0400 Subject: Rename catsh to 1sh Yes it's another rename because I felt like catsh was too long. 1sh is short and unique. --- bin/catsh/libedit/editline.7 | 935 ------------------------------------------- 1 file changed, 935 deletions(-) delete mode 100644 bin/catsh/libedit/editline.7 (limited to 'bin/catsh/libedit/editline.7') diff --git a/bin/catsh/libedit/editline.7 b/bin/catsh/libedit/editline.7 deleted file mode 100644 index 863bab96..00000000 --- a/bin/catsh/libedit/editline.7 +++ /dev/null @@ -1,935 +0,0 @@ -.\" $NetBSD: editline.7,v 1.5 2016/05/09 21:27:55 christos Exp $ -.\" $OpenBSD: editline.7,v 1.1 2016/04/20 01:11:45 schwarze Exp $ -.\" -.\" Copyright (c) 2016 Ingo Schwarze -.\" -.\" Permission to use, copy, modify, and distribute this software for any -.\" purpose with or without fee is hereby granted, provided that the above -.\" copyright notice and this permission notice appear in all copies. -.\" -.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -.\" -.Dd May 7, 2016 -.Dt EDITLINE 7 -.Os -.Sh NAME -.Nm editline -.Nd line editing user interface -.Sh DESCRIPTION -When a program using the -.Xr editline 3 -library prompts for an input string using the function -.Xr el_wgets 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 -.Xr el_set 3 -or -.Xr el_parse 3 -functions, and the user can switch to emacs mode either in the -.Xr editrc 5 -configuration file or interactively with the -.Ic ed-command -editor command, in all three cases executing the -.Ic bind Fl e -builtin command. -.Pp -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 -.Xr editrc 5 -.Ic bind -builtin command. -.Pp -In the following tables, -.Sq Ctrl- -indicates a character with the bit 0x40 flipped, and -.Sq 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 -.Xr locale 1 -are bound to -.Ic ed-insert -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 -.Ic em-meta-next -editor command. -For example, to enter -.Sq Meta-B -in order to call the -.Ic ed-prev-word -editor command in emacs mode, call -.Ic em-meta-next -by pressing and releasing the escape key (or equivalently, Ctrl-[), -then press and release the -.Sq B -key. -If you have configured a Meta-key on your keyboard, for example -with -.Ql setxkbmap -option altwin:left_meta_win , -the Ctrl-Meta-characters are directly accessible. -For example, to enter -.Sq Ctrl-Meta-H -in order to call the -.Ic ed-delete-prev-word -editor command in emacs mode, hold down the keys -.Sq Ctrl , -.Sq Meta , -and -.Sq H -at the same time. -Alternatively, press and release the escape key, then press and -release -.Sq Ctrl-H . -.Pp -In vi input mode, input characters are bound to the following editor -commands by default: -.Bl -column -offset indent "Ctrl-Z, TSTP" "ed-search-next-history" -.It Ctrl-D, EOF Ta Ic vi-list-or-eof -.It Ctrl-H, BS Ta Ic vi-delete-prev-char -.It Ctrl-J, LF Ta Ic ed-newline -.It Ctrl-M, CR Ta Ic ed-newline -.It Ctrl-Q Ta Ic ed-tty-start-output -.It Ctrl-S Ta Ic ed-tty-stop-output -.It Ctrl-U Ta Ic vi-kill-line-prev -.It Ctrl-V Ta Ic ed-quoted-insert -.It Ctrl-W Ta Ic ed-delete-prev-word -.It Ctrl-[, ESC Ta Ic vi-command-mode -.It Ctrl-\e, QUIT Ta Ic ed-tty-sigquit -.It Ctrl-?, DEL Ta Ic vi-delete-prev-char -.El -.Pp -All other input characters except the NUL character (Ctrl-@) are -bound to -.Ic ed-insert . -.Pp -In vi command mode, input characters are bound to the following -editor commands by default: -.Bl -column -offset indent "Ctrl-Z, TSTP" "ed-search-next-history" -.It Ctrl-A Ta Ic ed-move-to-beg -.It Ctrl-C, INT Ta Ic ed-tty-sigint -.It Ctrl-E Ta Ic ed-move-to-end -.It Ctrl-H, BS Ta Ic ed-delete-prev-char -.It Ctrl-J, LF Ta Ic ed-newline -.It Ctrl-K Ta Ic ed-kill-line -.It Ctrl-L, FF Ta Ic ed-clear-screen -.It Ctrl-M, CR Ta Ic ed-newline -.It Ctrl-N Ta Ic ed-next-history -.It Ctrl-O Ta Ic ed-tty-flush-output -.It Ctrl-P Ta Ic ed-prev-history -.It Ctrl-Q Ta Ic ed-tty-start-output -.It Ctrl-R Ta Ic ed-redisplay -.It Ctrl-S Ta Ic ed-tty-stop-output -.It Ctrl-U Ta Ic vi-kill-line-prev -.It Ctrl-W Ta Ic ed-delete-prev-word -.It Ctrl-[, ESC Ta Ic em-meta-next -.It Ctrl-\e, QUIT Ta Ic ed-tty-sigquit -.It Space Ta Ic ed-next-char -.It # Ta Ic vi-comment-out -.It $ Ta Ic ed-move-to-end -.It % Ta Ic vi-match -.It + Ta Ic ed-next-history -.It \&, Ta Ic vi-repeat-prev-char -.It - Ta Ic ed-prev-history -.It \&. Ta Ic vi-redo -.It / Ta Ic vi-search-prev -.It 0 Ta Ic vi-zero -.It 1 to 9 Ta Ic ed-argument-digit -.It \&: Ta Ic ed-command -.It \&; Ta Ic vi-repeat-next-char -.It \&? Ta Ic vi-search-next -.It @ Ta Ic vi-alias -.It A Ta Ic vi-add-at-eol -.It B Ta Ic vi-prev-big-word -.It C Ta Ic vi-change-to-eol -.It D Ta Ic ed-kill-line -.It E Ta Ic vi-end-big-word -.It F Ta Ic vi-prev-char -.It G Ta Ic vi-to-history-line -.It I Ta Ic vi-insert-at-bol -.It J Ta Ic ed-search-next-history -.It K Ta Ic ed-search-prev-history -.It N Ta Ic vi-repeat-search-prev -.It O Ta Ic ed-sequence-lead-in -.It P Ta Ic vi-paste-prev -.It R Ta Ic vi-replace-mode -.It S Ta Ic vi-substitute-line -.It T Ta Ic vi-to-prev-char -.It U Ta Ic vi-undo-line -.It W Ta Ic vi-next-big-word -.It X Ta Ic ed-delete-prev-char -.It Y Ta Ic vi-yank-end -.It \&[ Ta Ic ed-sequence-lead-in -.It ^ Ta Ic ed-move-to-beg -.It _ Ta Ic vi-history-word -.It a Ta Ic vi-add -.It b Ta Ic vi-prev-word -.It c Ta Ic vi-change-meta -.It d Ta Ic vi-delete-meta -.It e Ta Ic vi-end-word -.It f Ta Ic vi-next-char -.It h Ta Ic ed-prev-char -.It i Ta Ic vi-insert -.It j Ta Ic ed-next-history -.It k Ta Ic ed-prev-history -.It l Ta Ic ed-next-char -.It n Ta Ic vi-repeat-search-next -.It p Ta Ic vi-paste-next -.It r Ta Ic vi-replace-char -.It s Ta Ic vi-substitute-char -.It t Ta Ic vi-to-next-char -.It u Ta Ic vi-undo -.It v Ta Ic vi-histedit -.It w Ta Ic vi-next-word -.It x Ta Ic ed-delete-next-char -.It y Ta Ic vi-yank -.It \&| Ta Ic vi-to-column -.It ~ Ta Ic vi-change-case -.It Ctrl-?, DEL Ta Ic ed-delete-prev-char -.It Meta-O Ta Ic ed-sequence-lead-in -.It Meta-[ Ta Ic ed-sequence-lead-in -.El -.Pp -In emacs mode, input characters are bound to the following editor -commands by default: -.Bl -column -offset indent "Ctrl-Z, TSTP" "ed-search-next-history" -.It 0 to 9 Ta Ic ed-digit -.It Ctrl-@, NUL Ta Ic em-set-mark -.It Ctrl-A Ta Ic ed-move-to-beg -.It Ctrl-B Ta Ic ed-prev-char -.It Ctrl-C, INT Ta Ic ed-tty-sigint -.It Ctrl-D, EOF Ta Ic em-delete-or-list -.It Ctrl-E Ta Ic ed-move-to-end -.It Ctrl-F Ta Ic ed-next-char -.It Ctrl-H, BS Ta Ic em-delete-prev-char -.It Ctrl-J, LF Ta Ic ed-newline -.It Ctrl-K Ta Ic ed-kill-line -.It Ctrl-L, FF Ta Ic ed-clear-screen -.It Ctrl-M, CR Ta Ic ed-newline -.It Ctrl-N Ta Ic ed-next-history -.It Ctrl-O Ta Ic ed-tty-flush-output -.It Ctrl-P Ta Ic ed-prev-history -.It Ctrl-Q Ta Ic ed-tty-start-output -.It Ctrl-R Ta Ic ed-redisplay -.It Ctrl-S Ta Ic ed-tty-stop-output -.It Ctrl-T Ta Ic ed-transpose-chars -.It Ctrl-U Ta Ic ed-kill-line -.It Ctrl-V Ta Ic ed-quoted-insert -.It Ctrl-W Ta Ic em-kill-region -.It Ctrl-X Ta Ic ed-sequence-lead-in -.It Ctrl-Y Ta Ic em-yank -.It Ctrl-Z, TSTP Ta Ic ed-tty-sigtstp -.It Ctrl-[, ESC Ta Ic em-meta-next -.It Ctrl-\e, QUIT Ta Ic ed-tty-sigquit -.It Ctrl-] Ta Ic ed-tty-dsusp -.It Ctrl-?, DEL Ta Ic em-delete-prev-char -.It Ctrl-Meta-H Ta Ic ed-delete-prev-word -.It Ctrl-Meta-L Ta Ic ed-clear-screen -.It Ctrl-Meta-_ Ta Ic em-copy-prev-word -.It Meta-0 to 9 Ta Ic ed-argument-digit -.It Meta-B Ta Ic ed-prev-word -.It Meta-C Ta Ic em-capitol-case -.It Meta-D Ta Ic em-delete-next-word -.It Meta-F Ta Ic em-next-word -.It Meta-L Ta Ic em-lower-case -.It Meta-N Ta Ic ed-search-next-history -.It Meta-O Ta Ic ed-sequence-lead-in -.It Meta-P Ta Ic ed-search-prev-history -.It Meta-U Ta Ic em-upper-case -.It Meta-W Ta Ic em-copy-region -.It Meta-X Ta Ic ed-command -.It Meta-[ Ta Ic ed-sequence-lead-in -.It Meta-b Ta Ic ed-prev-word -.It Meta-c Ta Ic em-capitol-case -.It Meta-d Ta Ic em-delete-next-word -.It Meta-f Ta Ic em-next-word -.It Meta-l Ta Ic em-lower-case -.It Meta-n Ta Ic ed-search-next-history -.It Meta-p Ta Ic ed-search-prev-history -.It Meta-u Ta Ic em-upper-case -.It Meta-w Ta Ic em-copy-region -.It Meta-x Ta Ic ed-command -.It Ctrl-Meta-? Ta Ic ed-delete-prev-word -.El -.Pp -The remaining -.Xr ascii 7 -characters in the range 0x20 to 0x7e are bound to -.Ic ed-insert . -.Pp -If standard output is not connected to a terminal device -or -.Xr el_set 3 -was used to set -.Dv 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 -.Xr el_set 3 -was used to set -.Dv 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 -.Ic ed-argument-digit , -.Ic ed-digit , -.Ic em-universal-argument , -or -.Ic vi-zero . -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. -.Pp -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. -.Pp -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. -.Pp -In the following list, the default key bindings are listed after -each editor command. -.Bl -tag -width 4n -.It Ic ed-argument-digit Pq vi command: 1 to 9; emacs: Meta-0 to Meta-9 -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. -.It Ic ed-clear-screen Pq vi command: Ctrl-L; emacs: Ctrl-L, Ctrl-Meta-L -Clear the screen and display the edit buffer at the top. -Ignore any argument. -.It Ic ed-command Pq vi command: So \&: Sc ; emacs: Meta-X, Meta-x -Read a line from the terminal bypassing the normal line editing -functionality and execute that line as an -.Xr editrc 5 -builtin command. -If in vi command mode, also switch back to vi insert mode. -Ignore any argument. -.It Ic ed-delete-next-char Pq vi command: x -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. -.It Ic ed-delete-prev-char Pq vi command: X, Ctrl-H, BS, Ctrl-?, DEL -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. -.It Ic ed-delete-prev-word Pq vi: Ctrl-W; emacs: Ctrl-Meta-H, Ctrl-Meta-? -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. -.It Ic ed-digit Pq emacs: 0 to 9 -If in argument input mode, append the input digit to the argument -being read. -Otherwise, call -.Ic ed-insert . -It is an error if the input character is not a digit or if the -existing argument is already greater than a million. -.It Ic ed-end-of-file Pq not bound by default -Discard the edit buffer and indicate end of file to the program. -Ignore any argument. -.It Ic ed-ignore Pq various -Discard the input character and do nothing. -.It Ic ed-insert Pq vi input: almost all; emacs: printable characters -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. -.It Ic ed-kill-line Pq vi command: D, Ctrl-K; emacs: Ctrl-K, Ctrl-U -Delete the string from the cursor position to the end of the line -and save it to the cut buffer. -Ignore any argument. -.It Ic ed-move-to-beg Pq vi command: ^, Ctrl-A; emacs: Ctrl-A -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 -.Ic vi_change_meta , -.Ic vi_delete_meta , -or -.Ic vi_yank . -.It Ic ed-move-to-end Pq vi command: $, Ctrl-E; emacs: Ctrl-E -Move the cursor to the end of the edit buffer. -Ignore any argument. -Can be used as a movement command after -.Ic vi_change_meta , -.Ic vi_delete_meta , -or -.Ic vi_yank . -.It Ic ed-newline Pq all modes: Ctrl-J, LF, Ctrl-M, CR -Append a newline character to the edit buffer and return the edit -buffer to the program. -Ignore any argument. -.It Ic ed-next-char Pq vi command: Space, l; emacs: Ctrl-F -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 -.Ic vi_change_meta , -.Ic vi_delete_meta , -or -.Ic vi_yank . -It is an error if the cursor is already at the end of the edit -buffer. -.It Ic ed-next-history Pq vi command: j, +, Ctrl-N; emacs: Ctrl-N -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. -.It Ic ed-next-line Pq not bound by default -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. -.It Ic ed-prev-char Pq vi command: h; emacs: Ctrl-B -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 -.Ic vi_change_meta , -.Ic vi_delete_meta , -or -.Ic vi_yank . -It is an error if the cursor is already at the beginning of the -edit buffer. -.It Ic ed-prev-history Pq vi command: k, -, Ctrl-P; emacs: Ctrl-P -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. -.It Ic ed-prev-line Pq not bound by default -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. -.It Ic ed-prev-word Pq emacs: Meta-B, Meta-b -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 -.Ic vi_change_meta , -.Ic vi_delete_meta , -or -.Ic vi_yank . -It is an error if the cursor is already at the beginning of the -edit buffer. -.It Ic ed-quoted-insert Pq vi insert, emacs: Ctrl-V -Read one character from the terminal bypassing the normal line -editing functionality and call -.Ic ed-insert -on it. -If trying to read the character returns end of file or an error, -call -.Ic ed-end-of-file -instead. -.It Ic ed-redisplay Pq vi command, emacs: Ctrl-R -Redisplay everything. -Ignore any argument. -.It Ic ed-search-next-history Pq vi command: J; emacs: Meta-N, Meta-n -Replace the edit buffer with the next matching history entry. -.It Ic ed-search-prev-history Pq vi command: K; emacs: Meta-P, Meta-p -Replace the edit buffer with the previous matching history entry. -.It Ic ed-sequence-lead-in Pq vi cmd: O, \&[; emacs: Ctrl-X;\ - both: Meta-O, Meta-[ -Call a macro. -See the section about -.Sx Macros -below for details. -.It Ic ed-start-over Pq not bound by default -Discard the contents of the edit buffer and start from scratch. -Ignore any argument. -.It Ic ed-transpose-chars Pq emacs: Ctrl-T -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. -.It Ic ed-unassigned Pq all characters not listed -This editor command always results in an error. -.It Ic em-capitol-case Pq emacs: Meta-C, Meta-c -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. -.It Ic em-copy-prev-word Pq emacs: Ctrl-Meta-_ -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. -.It Ic em-copy-region Pq emacs: Meta-W, Meta-w -Copy the string from the cursor to the mark to the cut buffer. -It is an error if the mark is not set. -.It Ic em-delete-next-word Pq emacs: Meta-D, Meta-d -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. -.It Ic em-delete-or-list Pq emacs: Ctrl-D, EOF -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. -.It Ic em-delete-prev-char Pq emacs: Ctrl-H, BS, Ctrl-?, DEL -Delete the character to the left of the cursor. -It is an error if the cursor is at the beginning of the edit buffer. -.It Ic em-exchange-mark Pq not bound by default -Exchange the cursor and the mark. -.It Ic em-gosmacs-transpose Pq not bound by default -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. -.It Ic em-inc-search-next Pq not bound by default -Emacs incremental next search. -.It Ic em-inc-search-prev Pq not bound by default -Emacs incremental reverse search. -.It Ic em-kill-line Pq not bound by default -Delete the entire contents of the edit buffer and save it to the -cut buffer. -.It Ic em-kill-region Pq emacs: Ctrl-W -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. -.It Ic em-lower-case Pq emacs: Meta-L, Meta-l -Convert the characters from the cursor to the end of the current -word to lower case. -.It Ic em-meta-next Pq vi command, emacs: Ctrl-[, ESC -Set the bit 0x80 on the next character typed. -Unless the resulting code point is printable, holding down the -.Sq Meta- -key while typing that character is a simpler way to achieve the -same effect. -.It Ic em-next-word Pq Meta-F, Meta-f -Move the cursor to the end of the current word. -Can be used as a movement command after -.Ic vi_change_meta , -.Ic vi_delete_meta , -or -.Ic vi_yank . -It is an error if the cursor is already at the end of the edit -buffer. -.It Ic em-set-mark Pq emacs: Ctrl-Q, NUL -Set the mark at the current cursor position. -.It Ic em-toggle-overwrite Pq not bound by default -Switch from insert to overwrite mode or vice versa. -.It Ic em-universal-argument Pq not bound by default -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. -.It Ic em-upper-case Pq emacs: Meta-U, Meta-u -Convert the characters from the cursor to the end of the current -word to upper case. -.It Ic em-yank Pq emacs: Ctrl-Y -Paste the cut buffer to the left of the cursor. -.It Ic vi-add Pq vi command: a -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. -.It Ic vi-add-at-eol Pq vi command: A -Switch to vi insert mode and move the cursor to the end of the edit -buffer. -.It Ic vi-alias Pq vi command: @ -If an alias function was defined by calling the -.Xr el_set 3 -or -.Xr el_wset 3 -function with the argument -.Dv 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 -.Dv 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 -.Xr el_wpush 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. -.It Ic vi-change-case Pq vi command: ~ -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. -.It Ic vi-change-meta Pq vi command: c -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. -.It Ic vi-change-to-eol Pq vi command: C -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. -.It Ic vi-command-mode Pq vi insert: Ctrl-[, ESC -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. -.It Ic vi-comment-out Pq vi command: # -Insert a -.Sq # -character at the beginning of the edit buffer and return the edit -buffer to the program. -.It Ic vi-delete-meta Pq vi command: d -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. -.It Ic vi-delete-prev-char Pq vi insert: Ctrl-H, BS, Ctrl-?, DEL -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. -.It Ic vi-end-big-word Pq vi command: E -Move the cursor to the end of the current space delimited word. -Can be used as a movement command after -.Ic vi_change_meta , -.Ic vi_delete_meta , -or -.Ic vi_yank . -It is an error if the cursor is already at the end of the edit -buffer. -.It Ic vi-end-word Pq vi command: e -Move the cursor to the end of the current word. -Can be used as a movement command after -.Ic vi_change_meta , -.Ic vi_delete_meta , -or -.Ic vi_yank . -It is an error if the cursor is already at the end of the edit -buffer. -.It Ic vi-history-word Pq vi command: _ -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. -.It Ic vi-insert Pq vi command: i -Enter insert mode. -.It Ic vi-insert-at-bol Pq vi command: I -Move the cursor to the beginning of the edit buffer and switch to -vi insert mode. -.It Ic vi-kill-line-prev Pq vi: Ctrl-U -Delete the string from the beginning of the edit buffer to the -cursor and save it to the cut buffer. -.It Ic vi-list-or-eof Pq vi insert: Ctrl-D, EOF -If the edit buffer is empty, indicate end of file to the program. -It is an error if the edit buffer is not empty. -.It Ic vi-match Pq vi command: % -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 -.Ic vi_change_meta , -.Ic vi_delete_meta , -or -.Ic vi_yank . -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. -.It Ic vi-next-big-word Pq vi command: W -Move the cursor to the right to the beginning of the next space -delimited word. -Can be used as a movement command after -.Ic vi_change_meta , -.Ic vi_delete_meta , -or -.Ic vi_yank . -It is an error if the cursor is already at the end of the edit -buffer or on its last character. -.It Ic vi-next-char Pq vi command: f -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 -.Ic vi_change_meta , -.Ic vi_delete_meta , -or -.Ic vi_yank . -If trying to read the character results in end of file or an error, -call -.Ic ed-end-of-file -instead. -It is an error if the character is not found searching to the right -in the edit buffer. -.It Ic vi-next-word Pq vi command: w -Move the cursor to the right to the beginning of the next word. -Can be used as a movement command after -.Ic vi_change_meta , -.Ic vi_delete_meta , -or -.Ic vi_yank . -It is an error if the cursor is already at the end of the edit -buffer or on its last character. -.It Ic vi-paste-next Pq vi command: p -Insert a copy of the cut buffer to the right of the cursor. -It is an error if the cut buffer is empty. -.It Ic vi-paste-prev Pq vi command: P -Insert a copy of the cut buffer to the left of the cursor. -It is an error if the cut buffer is empty. -.It Ic vi-prev-big-word Pq vi command: B -Move the cursor to the left to the next beginning of a space delimited -word. -Can be used as a movement command after -.Ic vi_change_meta , -.Ic vi_delete_meta , -or -.Ic vi_yank . -It is an error if the cursor is already at the beginning of the -edit buffer. -.It Ic vi-prev-char Pq vi command: F -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 -.Ic vi_change_meta , -.Ic vi_delete_meta , -or -.Ic vi_yank . -If trying to read the character results in end of file or an error, -call -.Ic ed-end-of-file -instead. -It is an error if the character is not found searching to the left -in the edit buffer. -.It Ic vi-prev-word Pq vi command: b -Move the cursor to the left to the next beginning of a word. -Can be used as a movement command after -.Ic vi_change_meta , -.Ic vi_delete_meta , -or -.Ic vi_yank . -It is an error if the cursor is already at the beginning of the -edit buffer. -.It Ic vi-redo Pq vi command: Sq \&. -Redo the last non-motion command. -.It Ic vi-repeat-next-char Pq vi command: Sq \&; -Repeat the most recent character search in the same search direction. -Can be used as a movement command after -.Ic vi_change_meta , -.Ic vi_delete_meta , -or -.Ic vi_yank . -.It Ic vi-repeat-prev-char Pq vi command: Sq \&, -Repeat the most recent character search in the opposite search -direction. -Can be used as a movement command after -.Ic vi_change_meta , -.Ic vi_delete_meta , -or -.Ic vi_yank . -.It Ic vi-repeat-search-next Pq vi command: n -Repeat the most recent history search in the same search direction. -.It Ic vi-repeat-search-prev Pq vi command: N -Repeat the most recent history search in the opposite search -direction. -.It Ic vi-replace-char Pq vi command: r -Switch to vi replace mode, and automatically switch back to vi -command mode after the next character typed. -See -.Ic ed-insert -for a description of replace mode. -It is an error if the cursor is at the end of the edit buffer. -.It Ic vi-replace-mode Pq vi command: R -Switch to vi replace mode. -This is a variant of vi insert mode; see -.Ic ed-insert -for the difference. -.It Ic vi-search-next Pq vi command: \&? -Replace the edit buffer with the next matching history entry. -.It Ic vi-search-prev Pq vi command: / -Replace the edit buffer with the previous matching history entry. -.It Ic vi-substitute-char Pq vi command: s -Delete the character at the cursor and switch to vi insert mode. -.It Ic vi-substitute-line Pq vi command: S -Delete the entire contents of the edit buffer, save a copy of it -in the cut buffer, and enter vi insert mode. -.It Ic vi-to-column Pq vi command: \&| -Move the cursor to the column specified as the argument. -Can be used as a movement command after -.Ic vi_change_meta , -.Ic vi_delete_meta , -or -.Ic vi_yank . -.It Ic vi-to-history-line Pq vi command: G -Replace the edit buffer with the specified history entry. -.It Ic vi-to-next-char Pq vi command: t -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 -.Ic vi_change_meta , -.Ic vi_delete_meta , -or -.Ic vi_yank . -If trying to read the character results in end of file or an error, -call -.Ic ed-end-of-file -instead. -It is an error if the character is not found searching to the right -in the edit buffer. -.It Ic vi-to-prev-char Pq vi command: T -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 -.Ic vi_change_meta , -.Ic vi_delete_meta , -or -.Ic vi_yank . -If trying to read the character results in end of file or an error, -call -.Ic ed-end-of-file -instead. -It is an error if the character is not found searching to the left -in the edit buffer. -.It Ic vi-undo Pq vi command: u -Undo the last change. -.It Ic vi-undo-line Pq vi command: U -Undo all changes to the edit buffer. -.It Ic vi-yank Pq vi command: y -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. -.It Ic vi-yank-end Pq vi command: Y -Copy the string from the cursor to the end of the edit buffer to -the cut buffer. -.It Ic vi-zero Pq vi command: 0 -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 -.Ic vi_change_meta , -.Ic vi_delete_meta , -or -.Ic vi_yank . -.El -.Ss Macros -If an input character is bound to the editor command -.Ic ed-sequence-lead-in , -.Nm -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. -.Pp -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 -.Sx Input Queue . -.Pp -The following command macros are defined by default in vi command -mode and in emacs mode: -.Bl -column -offset indent "Esc O A, Esc O A" "em-exchange-mark" -.It Esc \&[ A, Esc O A Ta Ic ed-prev-history -.It Esc \&[ B, Esc O B Ta Ic ed-next-history -.It Esc \&[ C, Esc O C Ta Ic ed-next-char -.It Esc \&[ D, Esc O D Ta Ic ed-prev-char -.It Esc \&[ F, Esc O F Ta Ic ed-move-to-end -.It Esc \&[ H, Esc O H Ta Ic ed-move-to-beg -.El -.Pp -In vi command mode, they are also defined by default without the -initial escape character. -.Pp -In addition, the -.Nm -library tries to bind the strings generated by the arrow keys -as reported by the -.Xr terminfo 5 -database to these editor commands, unless that would clobber -user settings. -.Pp -In emacs mode, the two-character string -.Dq Ctrl-X Ctrl-X -is bound to the -.Ic em-exchange-mark -editor command. -.Ss Input Queue -The -.Nm -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. -.Pp -A line can be appended to the end of the input queue in several ways: -.Bl -dash -offset indent -.It -By calling one of the keyboard -.Sx Macros . -.It -By calling the editor command -.Ic vi-redo . -.It -By calling the editor command -.Ic vi-alias . -.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 -.Xr el_push 3 -or -.Xr el_wpush 3 , -it can provide additional, program-specific ways -of appending to the input queue. -.El -.Sh SEE ALSO -.Xr mg 1 , -.Xr vi 1 , -.Xr editline 3 , -.Xr el_wgets 3 , -.Xr el_wpush 3 , -.Xr el_wset 3 , -.Xr editrc 5 -.Sh HISTORY -This manual page first appeared in -.Ox 6.0 -and -.Nx 8 . -.Sh AUTHORS -.An -nosplit -This manual page was written by -.An Ingo Schwarze Aq Mt schwarze@openbsd.org . -- cgit 1.4.1