| '\" te |
| .\" Copyright (c) 2000, 2001, 2002, 2003, 2004 by Martin C. Shepherd. All Rights Reserved. |
| .\" Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the |
| .\" "Software"), to deal in the Software without restriction, including |
| .\" without limitation the rights to use, copy, modify, merge, publish, |
| .\" distribute, and/or sell copies of the Software, and to permit persons |
| .\" to whom the Software is furnished to do so, provided that the above |
| .\" copyright notice(s) and this permission notice appear in all copies of |
| .\" the Software and that both the above copyright notice(s) and this |
| .\" permission notice appear in supporting documentation. |
| .\" |
| .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
| .\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
| .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT |
| .\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR |
| .\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL |
| .\" 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. |
| .\" |
| .\" Except as contained in this notice, the name of a copyright holder |
| .\" shall not be used in advertising or otherwise to promote the sale, use |
| .\" or other dealings in this Software without prior written authorization |
| .\" of the copyright holder. |
| .\" Portions Copyright (c) 2005, Sun Microsystems, Inc. All Rights Reserved. |
| .TH TECLA 5 "April 9, 2016" |
| .SH NAME |
| tecla, teclarc \- User interface provided by the tecla library. |
| .SH DESCRIPTION |
| .LP |
| This man page describes the command-line editing features that are available to |
| users of programs that read keyboard input via the tecla library. Users of the |
| \fBtcsh\fR shell will find the default key bindings very familiar. Users of the |
| \fBbash\fR shell will also find it quite familiar, but with a few minor |
| differences, most notably in how forward and backward searches through the list |
| of historical commands are performed. There are two major editing modes, one |
| with \fBemacs\fR-like key bindings and another with \fBvi\fR-like key bindings. |
| By default \fBemacs\fR mode is enabled, but \fBvi\fR(1) mode can alternatively |
| be selected via the user's configuration file. This file can also be used to |
| change the bindings of individual keys to suit the user's preferences. By |
| default, tab completion is provided. If the application hasn't reconfigured |
| this to complete other types of symbols, then tab completion completes file |
| names. |
| .SS "Key Sequence Notation" |
| .LP |
| In the rest of this man page, and also in all tecla configuration files, key |
| sequences are expressed as follows. |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^A\fR or \fBC-a\fR\fR |
| .ad |
| .RS 13n |
| This is a 'CONTROL-A', entered by pressing the CONTROL key at the same time as |
| the 'A' key. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\eE\fR or \fBM-\fR |
| .ad |
| .RS 13n |
| In key sequences, both of these notations can be entered either by pressing the |
| ESCAPE key, then the following key, or by pressing the META key at the same |
| time as the following key. Thus the key sequence \fBM-p\fR can be typed in two |
| ways, by pressing the ESCAPE key, followed by pressing 'P', or by pressing the |
| META key at the same time as 'P'. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBup\fR |
| .ad |
| .RS 13n |
| This refers to the up-arrow key. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBdown\fR |
| .ad |
| .RS 13n |
| This refers to the down-arrow key. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBleft\fR |
| .ad |
| .RS 13n |
| This refers to the left-arrow key. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBright\fR |
| .ad |
| .RS 13n |
| This refers to the right-arrow key. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBa\fR |
| .ad |
| .RS 13n |
| This is just a normal 'A' key. |
| .RE |
| |
| .SS "The Tecla Configuration File" |
| .LP |
| By default, tecla looks for a file called \fB\&.teclarc\fR in your home |
| directory (ie. \fB~/.teclarc\fR). If it finds this file, it reads it, |
| interpreting each line as defining a new key binding or an editing |
| configuration option. Since the \fBemacs\fR key-bindings are installed by |
| default, if you want to use the non-default \fBvi\fR editing mode, the most |
| important item to go in this file is the following line: |
| .sp |
| .in +2 |
| .nf |
| edit-mode vi |
| .fi |
| .in -2 |
| |
| .sp |
| .LP |
| This will re-configure the default bindings for \fBvi\fR-mode. The complete set |
| of arguments that this command accepts are: |
| .sp |
| .ne 2 |
| .na |
| \fBvi\fR |
| .ad |
| .RS 9n |
| Install key bindings like those of the \fBvi\fR editor. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBemacs\fR |
| .ad |
| .RS 9n |
| Install key bindings like those of the \fBemacs\fR editor. This is the default. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBnone\fR |
| .ad |
| .RS 9n |
| Use just the native line editing facilities provided by the terminal driver. |
| .RE |
| |
| .sp |
| .LP |
| To prevent the terminal bell from being rung, such as when an unrecognized |
| control-sequence is typed, place the following line in the configuration file: |
| .sp |
| .in +2 |
| .nf |
| nobeep |
| .fi |
| .in -2 |
| |
| .sp |
| .LP |
| An example of a key binding line in the configuration file is the following. |
| .sp |
| .in +2 |
| .nf |
| bind M-[2~ insert-mode |
| .fi |
| .in -2 |
| |
| .sp |
| .LP |
| On many keyboards, the above key sequence is generated when one presses the |
| insert key, so with this key binding, one can toggle between the |
| \fBemacs\fR-mode insert and overwrite modes by hitting one key. One could also |
| do it by typing out the above sequence of characters one by one. As explained |
| above, the \fBM-\fR part of this sequence can be typed either by pressing the |
| ESCAPE key before the following key, or by pressing the META key at the same |
| time as the following key. Thus if you had set the above key binding, and the |
| insert key on your keyboard didn't generate the above key sequence, you could |
| still type it in either of the following 2 ways. |
| .RS +4 |
| .TP |
| 1. |
| Hit the ESCAPE key momentarily, then press '[', then '2', then finally '~'. |
| .RE |
| .RS +4 |
| .TP |
| 2. |
| Press the META key at the same time as pressing the '[' key, then press '2', |
| then '~'. |
| .RE |
| .sp |
| .LP |
| If you set a key binding for a key sequence that is already bound to a |
| function, the new binding overrides the old one. If in the new binding you omit |
| the name of the new function to bind to the key sequence, the original binding |
| becomes undefined. |
| .sp |
| .LP |
| Starting with versions of \fBlibtecla\fR later than 1.3.3 it is now possible to |
| bind key sequences that begin with a printable character. Previously key |
| sequences were required to start with a CONTROL or META character. |
| .sp |
| .LP |
| Note that the special keywords "up", "down", "left", and "right" refer to the |
| arrow keys, and are thus not treated as key sequences. So, for example, to |
| rebind the up and down arrow keys to use the history search mechanism instead |
| of the simple history recall method, you could place the following in your |
| configuration file: |
| .sp |
| .in +2 |
| .nf |
| bind up history-search-backwards |
| bind down history-search-backwards |
| .fi |
| .in -2 |
| |
| .sp |
| .LP |
| To unbind an existing binding, you can do this with the bind command by |
| omitting to name any action to rebind the key sequence to. For example, by not |
| specifying an action function, the following command unbinds the default |
| beginning-of-line action from the \fB^A\fR key sequence: |
| .sp |
| .in +2 |
| .nf |
| bind ^A |
| .fi |
| .in -2 |
| |
| .sp |
| .LP |
| If you create a \fB~/.teclarc\fR configuration file, but it appears to have no |
| effect on the program, check the documentation of the program to see if the |
| author chose a different name for this file. |
| .SS "Filename and Tilde Completion" |
| .LP |
| With the default key bindings, pressing the TAB key (aka. \fB^I\fR) results in |
| tecla attempting to complete the incomplete file name that precedes the cursor. |
| Tecla searches backwards from the cursor, looking for the start of the file |
| name, stopping when it hits either a space or the start of the line. If more |
| than one file has the specified prefix, then tecla completes the file name up |
| to the point at which the ambiguous matches start to differ, then lists the |
| possible matches. |
| .sp |
| .LP |
| In addition to literally written file names, tecla can complete files that |
| start with \fB~/\fR and \fB~user/\fR expressions and that contain \fB$envvar\fR |
| expressions. In particular, if you hit TAB within an incomplete \fB~user\fR, |
| expression, tecla will attempt to complete the username, listing any ambiguous |
| matches. |
| .sp |
| .LP |
| The completion binding is implemented using the \fBcpl_complete_word()\fR |
| function, which is also available separately to users of this library. See the |
| \fBcpl_complete_word\fR(3TECLA) man page for more details. |
| .SS "Filename Expansion" |
| .LP |
| With the default key bindings, pressing \fB^X*\fR causes tecla to expand the |
| file name that precedes the cursor, replacing \fB~/\fR and \fB~user/\fR |
| expressions with the corresponding home directories, and replacing |
| \fB$envvar\fR expressions with the value of the specified environment variable, |
| then if there are any wildcards, replacing the so far expanded file name with a |
| space-separated list of the files which match the wild cards. |
| .sp |
| .LP |
| The expansion binding is implemented using the \fBef_expand_file()\fR function. |
| See the \fBef_expand_file\fR(3TECLA) man page for more details. |
| .SS "Recalling Previously Typed Lines" |
| .LP |
| Every time that a new line is entered by the user, it is appended to a list of |
| historical input lines maintained within the \fBGetLine\fR resource object. You |
| can traverse up and down this list using the up and down arrow keys. |
| Alternatively, you can do the same with the \fB^P\fR, and \fB^N\fR keys, and in |
| \fBvi\fR command mode you can alternatively use the k and j characters. Thus |
| pressing up-arrow once, replaces the current input line with the previously |
| entered line. Pressing up-arrow again, replaces this with the line that was |
| entered before it, etc.. Having gone back one or more lines into the history |
| list, one can return to newer lines by pressing down-arrow one or more times. |
| If you do this sufficient times, you will return to the original line that you |
| were entering when you first hit up-arrow. |
| .sp |
| .LP |
| Note that in \fBvi\fR mode, all of the history recall functions switch the |
| library into command mode. |
| .sp |
| .LP |
| In \fBemacs\fR mode the \fBM-p\fR and \fBM-n\fR keys work just like the |
| \fB^P\fR and \fB^N\fR keys, except that they skip all but those historical |
| lines which share the prefix that precedes the cursor. In \fBvi\fR command mode |
| the upper case 'K' and 'J' characters do the same thing, except that the string |
| that they search for includes the character under the cursor as well as what |
| precedes it. |
| .sp |
| .LP |
| Thus for example, suppose that you were in \fBemacs\fR mode, and you had just |
| entered the following list of commands in the order shown: |
| .sp |
| .in +2 |
| .nf |
| ls ~/tecla/ |
| cd ~/tecla |
| ls -l getline.c |
| \fBemacs\fR ~/tecla/getline.c |
| .fi |
| .in -2 |
| |
| .sp |
| .LP |
| If you next typed: |
| .sp |
| .in +2 |
| .nf |
| ls |
| .fi |
| .in -2 |
| |
| .sp |
| .LP |
| and then hit \fBM-p\fR, then rather than returning the previously typed |
| \fBemacs\fR line, which doesn't start with "ls", tecla would recall the "ls -l |
| getline.c" line. Pressing \fBM-p\fR again would recall the "ls ~/tecla/" line. |
| .sp |
| .LP |
| Note that if the string that you are searching for, contains any of the special |
| characters, *, ?, or '[', then it is interpreted as a pattern to be matched. |
| Thus, continuing with the above example, after typing in the list of commands |
| shown, if you then typed: |
| .sp |
| .in +2 |
| .nf |
| *tecla* |
| .fi |
| .in -2 |
| |
| .sp |
| .LP |
| and hit \fBM-p\fR, then the "\fBemacs\fR ~/tecla/getline.c" line would be |
| recalled first, since it contains the word tecla somewhere in the line, |
| Similarly, hitting \fBM-p\fR again, would recall the "ls ~/tecla/" line, and |
| hitting it once more would recall the "ls ~/tecla/" line. The pattern syntax is |
| the same as that described for file name expansion, in the |
| \fBef_expand_file\fR(3TECLA). |
| .SS "History Files" |
| .LP |
| Authors of programs that use the tecla library have the option of saving |
| historical command-lines in a file before exiting, and subsequently reading |
| them back in from this file when the program is next started. There is no |
| standard name for this file, since it makes sense for each application to use |
| its own history file, so that commands from different applications don't get |
| mixed up. |
| .SS "International Character Sets" |
| .LP |
| Since \fBlibtecla\fR version 1.4.0, tecla has been 8-bit clean. This means that |
| all 8-bit characters that are printable in the user's current locale are now |
| displayed verbatim and included in the returned input line. Assuming that the |
| calling program correctly contains a call like the following, |
| .sp |
| .in +2 |
| .nf |
| setlocale(LC_CTYPE, ""); |
| .fi |
| .in -2 |
| |
| .sp |
| .LP |
| then the current locale is determined by the first of the environment variables |
| \fBLC_CTYPE\fR, \fBLC_ALL\fR, and \fBLANG\fR, that is found to contain a valid |
| locale name. If none of these variables are defined, or the program neglects to |
| call \fBsetlocale\fR, then the default C locale is used, which is US 7-bit |
| ASCII. On most unix-like platforms, you can get a list of valid locales by |
| typing the command: |
| .sp |
| .in +2 |
| .nf |
| locale -a |
| .fi |
| .in -2 |
| |
| .sp |
| .LP |
| at the shell prompt. |
| .SS "Meta Keys and Locales" |
| .LP |
| Beware that in most locales other than the default C locale, META characters |
| become printable, and they are then no longer considered to match \fBM-c\fR |
| style key bindings. This allows international characters to be entered with the |
| compose key without unexpectedly triggering META key bindings. You can still |
| invoke META bindings, since there are actually two ways to do this. For example |
| the binding \fBM-c\fR can also be invoked by pressing the ESCAPE key |
| momentarily, then pressing the c key, and this will work regardless of locale. |
| Moreover, many modern terminal emulators, such as gnome's gnome-terminal's and |
| KDE's konsole terminals, already generate escape pairs like this when you use |
| the META key, rather than a real meta character, and other emulators usually |
| have a way to request this behavior, so you can continue to use the META key on |
| most systems. |
| .sp |
| .LP |
| For example, although xterm terminal emulators generate real 8-bit meta |
| characters by default when you use the META key, they can be configured to |
| output the equivalent escape pair by setting their \fBEightBitInput\fR X |
| resource to False. You can either do this by placing a line like the following |
| in your \fB~/.Xdefaults\fR file, |
| .sp |
| .in +2 |
| .nf |
| XTerm*EightBitInput: False |
| .fi |
| .in -2 |
| |
| .sp |
| .LP |
| or by starting an \fBxterm\fR with an \fB-xrm\fR \&'*EightBitInput: False' |
| command-line argument. In recent versions of xterm you can toggle this feature |
| on and off with the 'Meta Sends Escape' option in the menu that is displayed |
| when you press the left mouse button and the CONTROL key within an xterm |
| window. In CDE, dtterms can be similarly coerced to generate escape pairs in |
| place of meta characters, by setting the \fBDtterm*KshMode\fR resource to True. |
| .SS "Entering International Characters" |
| .LP |
| If you don't have a keyboard that generates all of the international characters |
| that you need, there is usually a compose key that will allow you to enter |
| special characters, or a way to create one. For example, under X windows on |
| unix-like systems, if your keyboard doesn't have a compose key, you can |
| designate a redundant key to serve this purpose with the xmodmap command. For |
| example, on many PC keyboards there is a microsoft-windows key, which is |
| otherwise useless under Linux. On a laptop, for example, the \fBxev\fR program |
| might report that pressing this key generates keycode 115. To turn this key |
| into a COMPOSE key, do the following: |
| .sp |
| .in +2 |
| .nf |
| xmodmap -e 'keycode 115 = Multi_key' |
| .fi |
| .in -2 |
| |
| .sp |
| .LP |
| Type this key followed by a " character to enter an 'I' with a umlaut over it. |
| .SS "The Available Key Binding Functions" |
| .LP |
| The following is a list of the editing functions provided by the tecla library. |
| The names in the leftmost column of the list can be used in configuration files |
| to specify which function a given key or combination of keys should invoke. |
| They are also used in the next two sections to list the default key bindings in |
| \fBemacs\fR and \fBvi\fR modes. |
| .sp |
| .ne 2 |
| .na |
| \fBuser-interrupt\fR |
| .ad |
| .RS 30n |
| Send a SIGINT signal to the parent process. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBsuspend\fR |
| .ad |
| .RS 30n |
| Suspend the parent process. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBstop-output\fR |
| .ad |
| .RS 30n |
| Pause terminal output. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBstart-output\fR |
| .ad |
| .RS 30n |
| Resume paused terminal output. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBliteral-next\fR |
| .ad |
| .RS 30n |
| Arrange for the next character to be treated as a normal character. This allows |
| control characters to be entered. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBcursor-right\fR |
| .ad |
| .RS 30n |
| Move the cursor one character right. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBcursor-left\fR |
| .ad |
| .RS 30n |
| Move the cursor one character left. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBinsert-mode\fR |
| .ad |
| .RS 30n |
| Toggle between insert mode and overwrite mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBbeginning-of-line\fR |
| .ad |
| .RS 30n |
| Move the cursor to the beginning of the line. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBend-of-line\fR |
| .ad |
| .RS 30n |
| Move the cursor to the end of the line. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBdelete-line\fR |
| .ad |
| .RS 30n |
| Delete the contents of the current line. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBkill-line\fR |
| .ad |
| .RS 30n |
| Delete everything that follows the cursor. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBbackward-kill-line\fR |
| .ad |
| .RS 30n |
| Delete all characters between the cursor and the start of the line. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBforward-word\fR |
| .ad |
| .RS 30n |
| Move to the end of the word which follows the cursor. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBforward-to-word\fR |
| .ad |
| .RS 30n |
| Move the cursor to the start of the word that follows the cursor. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBbackward-word\fR |
| .ad |
| .RS 30n |
| Move to the start of the word which precedes the cursor. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBgoto-column\fR |
| .ad |
| .RS 30n |
| Move the cursor to the 1-relative column in the line specified by any preceding |
| digit-argument sequences (see Entering Repeat Counts below). |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBfind-parenthesis\fR |
| .ad |
| .RS 30n |
| If the cursor is currently over a parenthesis character, move it to the |
| matching parenthesis character. If not over a parenthesis character move right |
| to the next close parenthesis. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBforward-delete-char\fR |
| .ad |
| .RS 30n |
| Delete the character under the cursor. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBbackward-delete-char\fR |
| .ad |
| .RS 30n |
| Delete the character which precedes the cursor. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBlist-or-eof\fR |
| .ad |
| .RS 30n |
| This is intended for binding to \fB^D\fR. When invoked when the cursor is |
| within the line it displays all possible completions then redisplays the line |
| unchanged. When invoked on an empty line, it signals end-of-input (EOF) to the |
| caller of \fBgl_get_line()\fR. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBdel-char-or-list-or-eof\fR |
| .ad |
| .RS 30n |
| This is intended for binding to \fB^D\fR. When invoked when the cursor is |
| within the line it invokes forward-delete-char. When invoked at the end of the |
| line it displays all possible completions then redisplays the line unchanged. |
| When invoked on an empty line, it signals end-of-input (EOF) to the caller of |
| \fBgl_get_line()\fR. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBforward-delete-word\fR |
| .ad |
| .RS 30n |
| Delete the word which follows the cursor. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBbackward-delete-word\fR |
| .ad |
| .RS 30n |
| Delete the word which precedes the cursor. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBupcase-word\fR |
| .ad |
| .RS 30n |
| Convert all of the characters of the word which follows the cursor, to upper |
| case. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBdowncase-word\fR |
| .ad |
| .RS 30n |
| Convert all of the characters of the word which follows the cursor, to lower |
| case. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBcapitalize-word\fR |
| .ad |
| .RS 30n |
| Capitalize the word which follows the cursor. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBchange-case\fR |
| .ad |
| .RS 30n |
| If the next character is upper case, toggle it to lower case and vice versa. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBredisplay\fR |
| .ad |
| .RS 30n |
| Redisplay the line. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBclear-screen\fR |
| .ad |
| .RS 30n |
| Clear the terminal, then redisplay the current line. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBtranspose-chars\fR |
| .ad |
| .RS 30n |
| Swap the character under the cursor with the character just before the cursor. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBset-mark\fR |
| .ad |
| .RS 30n |
| Set a mark at the position of the cursor. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBexchange-point-and-mark\fR |
| .ad |
| .RS 30n |
| Move the cursor to the last mark that was set, and move the mark to where the |
| cursor used to be. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBkill-region\fR |
| .ad |
| .RS 30n |
| Delete the characters that lie between the last mark that was set, and the |
| cursor. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBcopy-region-as-kill\fR |
| .ad |
| .RS 30n |
| Copy the text between the mark and the cursor to the cut buffer, without |
| deleting the original text. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fByank\fR |
| .ad |
| .RS 30n |
| Insert the text that was last deleted, just before the current position of the |
| cursor. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBappend-yank\fR |
| .ad |
| .RS 30n |
| Paste the current contents of the cut buffer, after the cursor. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBup-history\fR |
| .ad |
| .RS 30n |
| Recall the next oldest line that was entered. Note that in \fBvi\fR mode you |
| are left in command mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBdown-history\fR |
| .ad |
| .RS 30n |
| Recall the next most recent line that was entered. If no history recall session |
| is currently active, the next line from a previous recall session is recalled. |
| Note that in vi mode you are left in command mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBhistory-search-backward\fR |
| .ad |
| .RS 30n |
| Recall the next oldest line who's prefix matches the string which currently |
| precedes the cursor (in \fBvi\fR command-mode the character under the cursor is |
| also included in the search string). Note that in \fBvi\fR mode you are left in |
| command mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBhistory-search-forward\fR |
| .ad |
| .RS 30n |
| Recall the next newest line who's prefix matches the string which currently |
| precedes the cursor (in \fBvi\fR command-mode the character under the cursor is |
| also included in the search string). Note that in \fBvi\fR mode you are left in |
| command mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBhistory-re-search-backward\fR |
| .ad |
| .RS 30n |
| Recall the next oldest line who's prefix matches that established by the last |
| invocation of either history-search-forward or history-search-backward. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBhistory-re-search-forward\fR |
| .ad |
| .RS 30n |
| Recall the next newest line who's prefix matches that established by the last |
| invocation of either history-search-forward or history-search-backward. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBcomplete-word\fR |
| .ad |
| .RS 30n |
| Attempt to complete the incomplete word which precedes the cursor. Unless the |
| host program has customized word completion, file name completion is attempted. |
| In \fBvi\fR command mode the character under the cursor is also included in |
| the word being completed, and you are left in \fBvi\fR insert mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBexpand-filename\fR |
| .ad |
| .RS 30n |
| Within the command line, expand wild cards, tilde expressions and dollar |
| expressions in the file name which immediately precedes the cursor. In \fBvi\fR |
| command mode the character under the cursor is also included in the file name |
| being expanded, and you are left in \fBvi\fR insert mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBlist-glob\fR |
| .ad |
| .RS 30n |
| List any file names which match the wild-card, tilde and dollar expressions in |
| the file name which immediately precedes the cursor, then redraw the input line |
| unchanged. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBlist-history\fR |
| .ad |
| .RS 30n |
| Display the contents of the history list for the current history group. If a |
| repeat count of \fB> 1\fR is specified, only that many of the most recent lines |
| are displayed. See the Entering Repeat Counts section. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBread-from-file\fR |
| .ad |
| .RS 30n |
| Temporarily switch to reading input from the file who's name precedes the |
| cursor. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBread-init-files\fR |
| .ad |
| .RS 30n |
| Re-read \fBteclarc\fR configuration files. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBbeginning-of-history\fR |
| .ad |
| .RS 30n |
| Move to the oldest line in the history list. Note that in \fBvi\fR mode you are |
| left in command mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBend-of-history\fR |
| .ad |
| .RS 30n |
| Move to the newest line in the history list (ie. the current line). Note that |
| in \fBvi\fR mode this leaves you in command mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBdigit-argument\fR |
| .ad |
| .RS 30n |
| Enter a repeat count for the next key binding function. For details, see the |
| Entering Repeat Counts section. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBnewline\fR |
| .ad |
| .RS 30n |
| Terminate and return the current contents of the line, after appending a |
| newline character. The newline character is normally '\en', but will be the |
| first character of the key sequence that invoked the newline action, if this |
| happens to be a printable character. If the action was invoked by the '\en' |
| newline character or the '\er' carriage return character, the line is appended |
| to the history buffer. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBrepeat-history\fR |
| .ad |
| .RS 30n |
| Return the line that is being edited, then arrange for the next most recent |
| entry in the history buffer to be recalled when tecla is next called. |
| Repeatedly invoking this action causes successive historical input lines to be |
| re-executed. Note that this action is equivalent to the 'Operate' action in |
| ksh. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBring-bell\fR |
| .ad |
| .RS 30n |
| Ring the terminal bell, unless the bell has been silenced via the nobeep |
| configuration option (see The Tecla Configuration File section). |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBforward-copy-char\fR |
| .ad |
| .RS 30n |
| Copy the next character into the cut buffer (NB. use repeat counts to copy more |
| than one). |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBbackward-copy-char\fR |
| .ad |
| .RS 30n |
| Copy the previous character into the cut buffer. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBforward-copy-word\fR |
| .ad |
| .RS 30n |
| Copy the next word into the cut buffer. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBbackward-copy-word\fR |
| .ad |
| .RS 30n |
| Copy the previous word into the cut buffer. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBforward-find-char\fR |
| .ad |
| .RS 30n |
| Move the cursor to the next occurrence of the next character that you type. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBbackward-find-char\fR |
| .ad |
| .RS 30n |
| Move the cursor to the last occurrence of the next character that you type. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBforward-to-char\fR |
| .ad |
| .RS 30n |
| Move the cursor to the character just before the next occurrence of the next |
| character that the user types. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBbackward-to-char\fR |
| .ad |
| .RS 30n |
| Move the cursor to the character just after the last occurrence before the |
| cursor of the next character that the user types. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBrepeat-find-char\fR |
| .ad |
| .RS 30n |
| Repeat the last backward-find-char, forward-find-char, backward-to-char or |
| forward-to-char. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBinvert-refind-char\fR |
| .ad |
| .RS 30n |
| Repeat the last backward-find-char, forward-find-char, backward-to-char, or |
| forward-to-char in the opposite direction. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBdelete-to-column\fR |
| .ad |
| .RS 30n |
| Delete the characters from the cursor up to the column that is specified by the |
| repeat count. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBdelete-to-parenthesis\fR |
| .ad |
| .RS 30n |
| Delete the characters from the cursor up to and including the matching |
| parenthesis, or next close parenthesis. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBforward-delete-find\fR |
| .ad |
| .RS 30n |
| Delete the characters from the cursor up to and including the following |
| occurrence of the next character typed. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBbackward-delete-find\fR |
| .ad |
| .RS 30n |
| Delete the characters from the cursor up to and including the preceding |
| occurrence of the next character typed. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBforward-delete-to\fR |
| .ad |
| .RS 30n |
| Delete the characters from the cursor up to, but not including, the following |
| occurrence of the next character typed. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBbackward-delete-to\fR |
| .ad |
| .RS 30n |
| Delete the characters from the cursor up to, but not including, the preceding |
| occurrence of the next character typed. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBdelete-refind\fR |
| .ad |
| .RS 30n |
| Repeat the last *-delete-find or *-delete-to action. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBdelete-invert-refind\fR |
| .ad |
| .RS 30n |
| Repeat the last *-delete-find or *-delete-to action, in the opposite direction. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBcopy-to-column\fR |
| .ad |
| .RS 30n |
| Copy the characters from the cursor up to the column that is specified by the |
| repeat count, into the cut buffer. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBcopy-to-parenthesis\fR |
| .ad |
| .RS 30n |
| Copy the characters from the cursor up to and including the matching |
| parenthesis, or next close parenthesis, into the cut buffer. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBforward-copy-find\fR |
| .ad |
| .RS 30n |
| Copy the characters from the cursor up to and including the following occurrence |
| of the next character typed, into the cut buffer. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBbackward-copy-find\fR |
| .ad |
| .RS 30n |
| Copy the characters from the cursor up to and including the preceding occurrence |
| of the next character typed, into the cut buffer. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBforward-copy-to\fR |
| .ad |
| .RS 30n |
| Copy the characters from the cursor up to, but not including, the following |
| occurrence of the next character typed, into the cut buffer. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBbackward-copy-to\fR |
| .ad |
| .RS 30n |
| Copy the characters from the cursor up to, but not including, the preceding |
| occurrence of the next character typed, into the cut buffer. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBcopy-refind\fR |
| .ad |
| .RS 30n |
| Repeat the last *-copy-find or *-copy-to action. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBcopy-invert-refind\fR |
| .ad |
| .RS 30n |
| Repeat the last *-copy-find or *-copy-to action, in the opposite direction. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBvi-mode\fR |
| .ad |
| .RS 30n |
| Switch to \fBvi\fR mode from emacs mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBemacs-mode\fR |
| .ad |
| .RS 30n |
| Switch to \fBemacs\fR mode from \fBvi\fR mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBvi-insert\fR |
| .ad |
| .RS 30n |
| From \fBvi\fR command mode, switch to insert mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBvi-overwrite\fR |
| .ad |
| .RS 30n |
| From \fBvi\fR command mode, switch to overwrite mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBvi-insert-at-bol\fR |
| .ad |
| .RS 30n |
| From \fBvi\fR command mode, move the cursor to the start of the line and switch |
| to insert mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBvi-append-at-eol\fR |
| .ad |
| .RS 30n |
| From \fBvi\fR command mode, move the cursor to the end of the line and switch |
| to append mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBvi-append\fR |
| .ad |
| .RS 30n |
| From \fBvi\fR command mode, move the cursor one position right, and switch to |
| insert mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBvi-replace-char\fR |
| .ad |
| .RS 30n |
| From \fBvi\fR command mode, replace the character under the cursor with the |
| next character entered. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBvi-forward-change-char\fR |
| .ad |
| .RS 30n |
| From \fBvi\fR command mode, delete the next character then enter insert mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBvi-backward-change-char\fR |
| .ad |
| .RS 30n |
| From vi command mode, delete the preceding character then enter insert mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBvi-forward-change-word\fR |
| .ad |
| .RS 30n |
| From \fBvi\fR command mode, delete the next word then enter insert mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBvi-backward-change-word\fR |
| .ad |
| .RS 30n |
| From vi command mode, delete the preceding word then enter insert mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBvi-change-rest-of-line\fR |
| .ad |
| .RS 30n |
| From \fBvi\fR command mode, delete from the cursor to the end of the line, then |
| enter insert mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBvi-change-line\fR |
| .ad |
| .RS 30n |
| From \fBvi\fR command mode, delete the current line, then enter insert mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBvi-change-to-bol\fR |
| .ad |
| .RS 30n |
| From \fBvi\fR command mode, delete all characters between the cursor and the |
| beginning of the line, then enter insert mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBvi-change-to-column\fR |
| .ad |
| .RS 30n |
| From \fBvi\fR command mode, delete the characters from the cursor up to the |
| column that is specified by the repeat count, then enter insert mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBvi-change-to-parenthesis\fR |
| .ad |
| .RS 30n |
| Delete the characters from the cursor up to and including the matching |
| parenthesis, or next close parenthesis, then enter \fBvi\fR insert mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBvi-forward-change-find\fR |
| .ad |
| .RS 30n |
| From \fBvi\fR command mode, delete the characters from the cursor up to and |
| including the following occurrence of the next character typed, then enter |
| insert mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBvi-backward-change-find\fR |
| .ad |
| .RS 30n |
| From vi command mode, delete the characters from the cursor up to and including |
| the preceding occurrence of the next character typed, then enter insert mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBvi-forward-change-to\fR |
| .ad |
| .RS 30n |
| From \fBvi\fR command mode, delete the characters from the cursor up to, but |
| not including, the following occurrence of the next character typed, then enter |
| insert mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBvi-backward-change-to\fR |
| .ad |
| .RS 30n |
| From \fBvi\fR command mode, delete the characters from the cursor up to, but |
| not including, the preceding occurrence of the next character typed, then enter |
| insert mode. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBvi-change-refind\fR |
| .ad |
| .RS 30n |
| Repeat the last vi-*-change-find or vi-*-change-to action. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBvi-change-invert-refind\fR |
| .ad |
| .RS 30n |
| Repeat the last vi-*-change-find or vi-*-change-to action, in the opposite |
| direction. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBvi-undo\fR |
| .ad |
| .RS 30n |
| In \fBvi\fR mode, undo the last editing operation. |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBvi-repeat-change\fR |
| .ad |
| .RS 30n |
| In \fBvi\fR command mode, repeat the last command that modified the line. |
| .RE |
| |
| .SS "Default Key Bindings In \fBemacs\fR Mode" |
| .LP |
| The following default key bindings, which can be overridden by the tecla |
| configuration file, are designed to mimic most of the bindings of the unix |
| \fBtcsh\fR shell, when it is in \fBemacs\fR editing mode. |
| .sp |
| .LP |
| This is the default editing mode of the tecla library. |
| .sp |
| .LP |
| Under UNIX the terminal driver sets a number of special keys for certain |
| functions. The tecla library attempts to use the same key bindings to maintain |
| consistency. The key sequences shown for the following 6 bindings are thus just |
| examples of what they will probably be set to. If you have used the stty |
| command to change these keys, then the default bindings should match. |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^C\fR\fR |
| .ad |
| .RS 6n |
| user-interrupt |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB^\e\fR |
| .ad |
| .RS 6n |
| abort |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^Z\fR\fR |
| .ad |
| .RS 6n |
| suspend |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^Q\fR\fR |
| .ad |
| .RS 6n |
| start-output |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^S\fR\fR |
| .ad |
| .RS 6n |
| stop-output |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^V\fR\fR |
| .ad |
| .RS 6n |
| literal-next |
| .RE |
| |
| .sp |
| .LP |
| The cursor keys are referred to by name, as follows. This is necessary because |
| different types of terminals generate different key sequences when their cursor |
| keys are pressed. |
| .sp |
| .ne 2 |
| .na |
| \fBright\fR |
| .ad |
| .RS 9n |
| cursor-right |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBleft\fR |
| .ad |
| .RS 9n |
| cursor-left |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBup\fR |
| .ad |
| .RS 9n |
| up-history |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBdown\fR |
| .ad |
| .RS 9n |
| down-history |
| .RE |
| |
| .sp |
| .LP |
| The remaining bindings don't depend on the terminal settings. |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^F\fR\fR |
| .ad |
| .RS 21n |
| cursor-right |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^B\fR\fR |
| .ad |
| .RS 21n |
| cursor-left |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-i\fR\fR |
| .ad |
| .RS 21n |
| insert-mode |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^A\fR\fR |
| .ad |
| .RS 21n |
| beginning-of-line |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^E\fR\fR |
| .ad |
| .RS 21n |
| end-of-line |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^U\fR\fR |
| .ad |
| .RS 21n |
| delete-line |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^K\fR\fR |
| .ad |
| .RS 21n |
| kill-line |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-f\fR\fR |
| .ad |
| .RS 21n |
| forward-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-b\fR\fR |
| .ad |
| .RS 21n |
| backward-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^D\fR\fR |
| .ad |
| .RS 21n |
| del-char-or-list-or-eof |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^H\fR\fR |
| .ad |
| .RS 21n |
| backward-delete-char |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^?\fR\fR |
| .ad |
| .RS 21n |
| backward-delete-char |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-d\fR\fR |
| .ad |
| .RS 21n |
| forward-delete-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-^H\fR\fR |
| .ad |
| .RS 21n |
| backward-delete-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-^?\fR\fR |
| .ad |
| .RS 21n |
| backward-delete-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-u\fR\fR |
| .ad |
| .RS 21n |
| upcase-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-l\fR\fR |
| .ad |
| .RS 21n |
| downcase-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-c\fR\fR |
| .ad |
| .RS 21n |
| capitalize-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^R\fR\fR |
| .ad |
| .RS 21n |
| redisplay |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^L\fR\fR |
| .ad |
| .RS 21n |
| clear-screen |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^T\fR\fR |
| .ad |
| .RS 21n |
| transpose-chars |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^@\fR\fR |
| .ad |
| .RS 21n |
| set-mark |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^X^X\fR\fR |
| .ad |
| .RS 21n |
| exchange-point-and-mark |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^W\fR\fR |
| .ad |
| .RS 21n |
| kill-region |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-w\fR\fR |
| .ad |
| .RS 21n |
| copy-region-as-kill |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^Y\fR\fR |
| .ad |
| .RS 21n |
| yank |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^P\fR\fR |
| .ad |
| .RS 21n |
| up-history |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^N\fR\fR |
| .ad |
| .RS 21n |
| down-history |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-p\fR\fR |
| .ad |
| .RS 21n |
| history-search-backward |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-n\fR\fR |
| .ad |
| .RS 21n |
| history-search-forward |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^I\fR\fR |
| .ad |
| .RS 21n |
| complete-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^X*\fR\fR |
| .ad |
| .RS 21n |
| expand-filename |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^X^F\fR\fR |
| .ad |
| .RS 21n |
| read-from-file |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^X^R\fR\fR |
| .ad |
| .RS 21n |
| read-init-files |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^Xg\fR\fR |
| .ad |
| .RS 21n |
| list-glob |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^Xh\fR\fR |
| .ad |
| .RS 21n |
| list-history |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-<\fR\fR |
| .ad |
| .RS 21n |
| beginning-of-history |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM->\fR\fR |
| .ad |
| .RS 21n |
| end-of-history |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB\en\fR\fR |
| .ad |
| .RS 21n |
| newline |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB\er\fR\fR |
| .ad |
| .RS 21n |
| newline |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-o\fR\fR |
| .ad |
| .RS 21n |
| repeat-history |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-^V\fR\fR |
| .ad |
| .RS 21n |
| \fBvi\fR-mode |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-0, M-1, ... M-9\fR\fR |
| .ad |
| .RS 21n |
| digit-argument (see below) |
| .RE |
| |
| .sp |
| .LP |
| Note that \fB^I\fR is what the TAB key generates, and that \fB^@\fR can be |
| generated not only by pressing the CONTROL key and the @ key simultaneously, |
| but also by pressing the CONTROL key and the space bar at the same time. |
| .SS "Default Key Bindings in \fBvi\fR Mode" |
| .LP |
| The following default key bindings are designed to mimic the \fBvi\fR style of |
| editing as closely as possible. This means that very few editing functions are |
| provided in the initial character input mode, editing functions instead being |
| provided by the \fBvi\fR command mode. The \fBvi\fR command mode is entered |
| whenever the ESCAPE character is pressed, or whenever a key sequence that |
| starts with a meta character is entered. In addition to mimicing \fBvi\fR, |
| \fBlibtecla\fR provides bindings for tab completion, wild-card expansion of |
| file names, and historical line recall. |
| .sp |
| .LP |
| To learn how to tell the tecla library to use \fBvi\fR mode instead of the |
| default \fBemacs\fR editing mode, see the earlier section entitled The Tecla |
| Configuration File. |
| .sp |
| .LP |
| Under UNIX the terminal driver sets a number of special keys for certain |
| functions. The tecla library attempts to use the same key bindings to maintain |
| consistency, binding them both in input mode and in command mode. The key |
| sequences shown for the following 6 bindings are thus just examples of what |
| they will probably be set to. If you have used the \fBstty\fR command to change |
| these keys, then the default bindings should match. |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^C\fR\fR |
| .ad |
| .RS 8n |
| user-interrupt |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB^\e\fR |
| .ad |
| .RS 8n |
| abort |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^Z\fR\fR |
| .ad |
| .RS 8n |
| suspend |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^Q\fR\fR |
| .ad |
| .RS 8n |
| start-output |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^S\fR\fR |
| .ad |
| .RS 8n |
| stop-output |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^V\fR\fR |
| .ad |
| .RS 8n |
| literal-next |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-^C\fR\fR |
| .ad |
| .RS 8n |
| user-interrupt |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBM-^\e\fR |
| .ad |
| .RS 8n |
| abort |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-^Z\fR\fR |
| .ad |
| .RS 8n |
| suspend |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-^Q\fR\fR |
| .ad |
| .RS 8n |
| start-output |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-^S\fR\fR |
| .ad |
| .RS 8n |
| stop-output |
| .RE |
| |
| .sp |
| .LP |
| Note that above, most of the bindings are defined twice, once as a raw control |
| code like \fB^C\fR and then a second time as a META character like \fBM-^C\fR. |
| The former is the binding for \fBvi\fR input mode, whereas the latter is the |
| binding for \fBvi\fR command mode. Once in command mode all key sequences that |
| the user types that they don't explicitly start with an ESCAPE or a META key, |
| have their first key secretly converted to a META character before the key |
| sequence is looked up in the key binding table. Thus, once in command mode, |
| when you type the letter i, for example, the tecla library actually looks up |
| the binding for \fBM-i\fR. |
| .sp |
| .LP |
| The cursor keys are referred to by name, as follows. This is necessary because |
| different types of terminals generate different key sequences when their cursor |
| keys are pressed. |
| .sp |
| .ne 2 |
| .na |
| \fB\fBright\fR\fR |
| .ad |
| .RS 9n |
| cursor-right |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBleft\fR\fR |
| .ad |
| .RS 9n |
| cursor-left |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBup\fR\fR |
| .ad |
| .RS 9n |
| up-history |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBdown\fR\fR |
| .ad |
| .RS 9n |
| down-history |
| .RE |
| |
| .sp |
| .LP |
| The cursor keys normally generate a key sequence that start with an ESCAPE |
| character, so beware that using the arrow keys will put you into command mode |
| (if you aren't already in command mode). |
| .sp |
| .LP |
| The following are the terminal-independent key bindings for \fBvi\fR input |
| mode. |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^D\fR\fR |
| .ad |
| .RS 8n |
| list-or-eof |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^G\fR\fR |
| .ad |
| .RS 8n |
| list-glob |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^H\fR\fR |
| .ad |
| .RS 8n |
| backward-delete-char |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^I\fR\fR |
| .ad |
| .RS 8n |
| complete-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB\er\fR\fR |
| .ad |
| .RS 8n |
| newline |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB\en\fR\fR |
| .ad |
| .RS 8n |
| newline |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^L\fR\fR |
| .ad |
| .RS 8n |
| clear-screen |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^N\fR\fR |
| .ad |
| .RS 8n |
| down-history |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^P\fR\fR |
| .ad |
| .RS 8n |
| up-history |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^R\fR\fR |
| .ad |
| .RS 8n |
| redisplay |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^U\fR\fR |
| .ad |
| .RS 8n |
| backward-kill-line |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^W\fR\fR |
| .ad |
| .RS 8n |
| backward-delete-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^X*\fR\fR |
| .ad |
| .RS 8n |
| expand-filename |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^X^F\fR\fR |
| .ad |
| .RS 8n |
| read-from-file |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^X^R\fR\fR |
| .ad |
| .RS 8n |
| read-init-files |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB^?\fR\fR |
| .ad |
| .RS 8n |
| backward-delete-char |
| .RE |
| |
| .sp |
| .LP |
| The following are the key bindings that are defined in \fBvi\fR command mode, |
| this being specified by them all starting with a META character. As mentioned |
| above, once in command mode the initial meta character is optional. For |
| example, you might enter command mode by typing ESCAPE, and then press 'H' |
| twice to move the cursor two positions to the left. Both 'H' characters get |
| quietly converted to \fBM-h\fR before being compared to the key binding table, |
| the first one because ESCAPE followed by a character is always converted to the |
| equivalent META character, and the second because command mode was already |
| active. |
| .sp |
| .ne 2 |
| .na |
| \fBM-<space>\fR |
| .ad |
| .RS 21n |
| cursor-right (META-space) |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-$\fR\fR |
| .ad |
| .RS 21n |
| end-of-line |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-*\fR\fR |
| .ad |
| .RS 21n |
| expand-filename |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-+\fR\fR |
| .ad |
| .RS 21n |
| down-history |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM--\fR\fR |
| .ad |
| .RS 21n |
| up-history |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-<\fR\fR |
| .ad |
| .RS 21n |
| beginning-of-history |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM->\fR\fR |
| .ad |
| .RS 21n |
| end-of-history |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-^\fR\fR |
| .ad |
| .RS 21n |
| beginning-of-line |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-\fR\fR |
| .ad |
| .RS 21n |
| repeat-find-char |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-,\fR\fR |
| .ad |
| .RS 21n |
| invert-refind-char |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-|\fR\fR |
| .ad |
| .RS 21n |
| goto-column |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-~\fR\fR |
| .ad |
| .RS 21n |
| change-case |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-.\fR\fR |
| .ad |
| .RS 21n |
| vi-repeat-change |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-%\fR\fR |
| .ad |
| .RS 21n |
| find-parenthesis |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-a\fR\fR |
| .ad |
| .RS 21n |
| vi-append |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-A\fR\fR |
| .ad |
| .RS 21n |
| vi-append-at-eol |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-b\fR\fR |
| .ad |
| .RS 21n |
| backward-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-B\fR\fR |
| .ad |
| .RS 21n |
| backward-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-C\fR\fR |
| .ad |
| .RS 21n |
| vi-change-rest-of-line |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-cb\fR\fR |
| .ad |
| .RS 21n |
| vi-backward-change-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-cB\fR\fR |
| .ad |
| .RS 21n |
| vi-backward-change-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-cc\fR\fR |
| .ad |
| .RS 21n |
| vi-change-line |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-ce\fR\fR |
| .ad |
| .RS 21n |
| vi-forward-change-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-cE\fR\fR |
| .ad |
| .RS 21n |
| vi-forward-change-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-cw\fR\fR |
| .ad |
| .RS 21n |
| vi-forward-change-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-cW\fR\fR |
| .ad |
| .RS 21n |
| vi-forward-change-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-cF\fR\fR |
| .ad |
| .RS 21n |
| vi-backward-change-find |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-cf\fR\fR |
| .ad |
| .RS 21n |
| vi-forward-change-find |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-cT\fR\fR |
| .ad |
| .RS 21n |
| vi-backward-change-to |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-ct\fR\fR |
| .ad |
| .RS 21n |
| vi-forward-change-to |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-c;\fR\fR |
| .ad |
| .RS 21n |
| vi-change-refind |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-c,\fR\fR |
| .ad |
| .RS 21n |
| vi-change-invert-refind |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-ch\fR\fR |
| .ad |
| .RS 21n |
| vi-backward-change-char |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-c^H\fR\fR |
| .ad |
| .RS 21n |
| vi-backward-change-char |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-c^?\fR\fR |
| .ad |
| .RS 21n |
| vi-backward-change-char |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-cl\fR\fR |
| .ad |
| .RS 21n |
| vi-forward-change-char |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBM-c<space>\fR |
| .ad |
| .RS 21n |
| vi-forward-change-char (META-c-space) |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-c^\fR\fR |
| .ad |
| .RS 21n |
| vi-change-to-bol |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-c0\fR\fR |
| .ad |
| .RS 21n |
| vi-change-to-bol |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-c$\fR\fR |
| .ad |
| .RS 21n |
| vi-change-rest-of-line |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-c|\fR\fR |
| .ad |
| .RS 21n |
| vi-change-to-column |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-c%\fR\fR |
| .ad |
| .RS 21n |
| vi-change-to-parenthesis |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-dh\fR\fR |
| .ad |
| .RS 21n |
| backward-delete-char |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-d^H\fR\fR |
| .ad |
| .RS 21n |
| backward-delete-char |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-d^?\fR\fR |
| .ad |
| .RS 21n |
| backward-delete-char |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-dl\fR\fR |
| .ad |
| .RS 21n |
| forward-delete-char |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBM-d<space>\fR |
| .ad |
| .RS 21n |
| forward-delete-char (META-d-space) |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-dd\fR\fR |
| .ad |
| .RS 21n |
| delete-line |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-db\fR\fR |
| .ad |
| .RS 21n |
| backward-delete-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-dB\fR\fR |
| .ad |
| .RS 21n |
| backward-delete-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-de\fR\fR |
| .ad |
| .RS 21n |
| forward-delete-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-dE\fR\fR |
| .ad |
| .RS 21n |
| forward-delete-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-dw\fR\fR |
| .ad |
| .RS 21n |
| forward-delete-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-dW\fR\fR |
| .ad |
| .RS 21n |
| forward-delete-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-dF\fR\fR |
| .ad |
| .RS 21n |
| backward-delete-find |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-df\fR\fR |
| .ad |
| .RS 21n |
| forward-delete-find |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-dT\fR\fR |
| .ad |
| .RS 21n |
| backward-delete-to |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-dt\fR\fR |
| .ad |
| .RS 21n |
| forward-delete-to |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-d;\fR\fR |
| .ad |
| .RS 21n |
| delete-refind |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-d,\fR\fR |
| .ad |
| .RS 21n |
| delete-invert-refind |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-d^\fR\fR |
| .ad |
| .RS 21n |
| backward-kill-line |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-d0\fR\fR |
| .ad |
| .RS 21n |
| backward-kill-line |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-d$\fR\fR |
| .ad |
| .RS 21n |
| kill-line |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-D\fR\fR |
| .ad |
| .RS 21n |
| kill-line |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-d|\fR\fR |
| .ad |
| .RS 21n |
| delete-to-column |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-d%\fR\fR |
| .ad |
| .RS 21n |
| delete-to-parenthesis |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-e\fR\fR |
| .ad |
| .RS 21n |
| forward-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-E\fR\fR |
| .ad |
| .RS 21n |
| forward-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-f\fR\fR |
| .ad |
| .RS 21n |
| forward-find-char |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-F\fR\fR |
| .ad |
| .RS 21n |
| backward-find-char |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM--\fR\fR |
| .ad |
| .RS 21n |
| up-history |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-h\fR\fR |
| .ad |
| .RS 21n |
| cursor-left |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-H\fR\fR |
| .ad |
| .RS 21n |
| beginning-of-history |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-i\fR\fR |
| .ad |
| .RS 21n |
| vi-insert |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-I\fR\fR |
| .ad |
| .RS 21n |
| vi-insert-at-bol |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-j\fR\fR |
| .ad |
| .RS 21n |
| down-history |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-J\fR\fR |
| .ad |
| .RS 21n |
| history-search-forward |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-k\fR\fR |
| .ad |
| .RS 21n |
| up-history |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-K\fR\fR |
| .ad |
| .RS 21n |
| history-search-backward |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-l\fR\fR |
| .ad |
| .RS 21n |
| cursor-right |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-L\fR\fR |
| .ad |
| .RS 21n |
| end-of-history |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-n\fR\fR |
| .ad |
| .RS 21n |
| history-re-search-forward |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-N\fR\fR |
| .ad |
| .RS 21n |
| history-re-search-backward |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-p\fR\fR |
| .ad |
| .RS 21n |
| append-yank |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-P\fR\fR |
| .ad |
| .RS 21n |
| yank |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-r\fR\fR |
| .ad |
| .RS 21n |
| vi-replace-char |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-R\fR\fR |
| .ad |
| .RS 21n |
| vi-overwrite |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-s\fR\fR |
| .ad |
| .RS 21n |
| vi-forward-change-char |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-S\fR\fR |
| .ad |
| .RS 21n |
| vi-change-line |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-t\fR\fR |
| .ad |
| .RS 21n |
| forward-to-char |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-T\fR\fR |
| .ad |
| .RS 21n |
| backward-to-char |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-u\fR\fR |
| .ad |
| .RS 21n |
| vi-undo |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-w\fR\fR |
| .ad |
| .RS 21n |
| forward-to-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-W\fR\fR |
| .ad |
| .RS 21n |
| forward-to-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-x\fR\fR |
| .ad |
| .RS 21n |
| forward-delete-char |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-X\fR\fR |
| .ad |
| .RS 21n |
| backward-delete-char |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-yh\fR\fR |
| .ad |
| .RS 21n |
| backward-copy-char |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-y^H\fR\fR |
| .ad |
| .RS 21n |
| backward-copy-char |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-y^?\fR\fR |
| .ad |
| .RS 21n |
| backward-copy-char |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-yl\fR\fR |
| .ad |
| .RS 21n |
| forward-copy-char |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBM-y<space>\fR |
| .ad |
| .RS 21n |
| forward-copy-char (META-y-space) |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-ye\fR\fR |
| .ad |
| .RS 21n |
| forward-copy-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-yE\fR\fR |
| .ad |
| .RS 21n |
| forward-copy-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-yw\fR\fR |
| .ad |
| .RS 21n |
| forward-copy-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-yW\fR\fR |
| .ad |
| .RS 21n |
| forward-copy-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-yb\fR\fR |
| .ad |
| .RS 21n |
| backward-copy-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-yB\fR\fR |
| .ad |
| .RS 21n |
| backward-copy-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-yf\fR\fR |
| .ad |
| .RS 21n |
| forward-copy-find |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-yF\fR\fR |
| .ad |
| .RS 21n |
| backward-copy-find |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-yt\fR\fR |
| .ad |
| .RS 21n |
| forward-copy-to |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-yT\fR\fR |
| .ad |
| .RS 21n |
| backward-copy-to |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-y;\fR\fR |
| .ad |
| .RS 21n |
| copy-refind |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-y,\fR\fR |
| .ad |
| .RS 21n |
| copy-invert-refind |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-y^\fR\fR |
| .ad |
| .RS 21n |
| copy-to-bol |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-y0\fR\fR |
| .ad |
| .RS 21n |
| copy-to-bol |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-y$\fR\fR |
| .ad |
| .RS 21n |
| copy-rest-of-line |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-yy\fR\fR |
| .ad |
| .RS 21n |
| copy-line |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-Y\fR\fR |
| .ad |
| .RS 21n |
| copy-line |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-y|\fR\fR |
| .ad |
| .RS 21n |
| copy-to-column |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-y%\fR\fR |
| .ad |
| .RS 21n |
| copy-to-parenthesis |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-^E\fR\fR |
| .ad |
| .RS 21n |
| emacs-mode |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-^H\fR\fR |
| .ad |
| .RS 21n |
| cursor-left |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-^?\fR\fR |
| .ad |
| .RS 21n |
| cursor-left |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-^L\fR\fR |
| .ad |
| .RS 21n |
| clear-screen |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-^N\fR\fR |
| .ad |
| .RS 21n |
| down-history |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-^P\fR\fR |
| .ad |
| .RS 21n |
| up-history |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-^R\fR\fR |
| .ad |
| .RS 21n |
| redisplay |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-^D\fR\fR |
| .ad |
| .RS 21n |
| list-or-eof |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-^I\fR\fR |
| .ad |
| .RS 21n |
| complete-word |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fBM-\er\fR |
| .ad |
| .RS 21n |
| newline |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-\en\fR\fR |
| .ad |
| .RS 21n |
| newline |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-^X^R\fR\fR |
| .ad |
| .RS 21n |
| read-init-files |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-^Xh\fR\fR |
| .ad |
| .RS 21n |
| list-history |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fBM-0, M-1, ... M-9\fR\fR |
| .ad |
| .RS 21n |
| digit-argument (see below) |
| .RE |
| |
| .sp |
| .LP |
| Note that \fB^I\fR is what the TAB key generates. |
| .SS "Entering Repeat Counts" |
| .LP |
| Many of the key binding functions described previously, take an optional count, |
| typed in before the target key sequence. This is interpreted as a repeat count |
| by most bindings. A notable exception is the goto-column binding, which |
| interprets the count as a column number. |
| .sp |
| .LP |
| By default you can specify this count argument by pressing the META key while |
| typing in the numeric count. This relies on the digit-argument action being |
| bound to 'META-0', 'META-1' etc. Once any one of these bindings has been |
| activated, you can optionally take your finger off the META key to type in the |
| rest of the number, since every numeric digit thereafter is treated as part of |
| the number, unless it is preceded by the literal-next binding. As soon as a |
| non-digit, or literal digit key is pressed the repeat count is terminated and |
| either causes the just typed character to be added to the line that many times, |
| or causes the next key binding function to be given that argument. |
| .sp |
| .LP |
| For example, in \fBemacs\fR mode, typing: |
| .sp |
| .in +2 |
| .nf |
| M-12a |
| .fi |
| .in -2 |
| |
| .sp |
| .LP |
| causes the letter 'a' to be added to the line 12 times, whereas |
| .sp |
| .in +2 |
| .nf |
| M-4M-c |
| .fi |
| .in -2 |
| |
| .sp |
| .LP |
| Capitalizes the next 4 words. |
| .sp |
| .LP |
| In \fBvi\fR command mode the meta modifier is automatically added to all |
| characters typed in, so to enter a count in \fBvi\fR command-mode, just |
| involves typing in the number, just as it does in the \fBvi\fR editor itself. |
| So for example, in vi command mode, typing: |
| .sp |
| .in +2 |
| .nf |
| 4w2x |
| .fi |
| .in -2 |
| |
| .sp |
| .LP |
| moves the cursor four words to the right, then deletes two characters. |
| .sp |
| .LP |
| You can also bind digit-argument to other key sequences. If these end in a |
| numeric digit, that digit gets appended to the current repeat count. If it |
| doesn't end in a numeric digit, a new repeat count is started with a value of |
| zero, and can be completed by typing in the number, after letting go of the key |
| which triggered the digit-argument action. |
| .SH FILES |
| .ne 2 |
| .na |
| \fB\fB/usr/lib/libtecla.so\fR\fR |
| .ad |
| .RS 27n |
| The tecla library |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB/usr/include/libtecla.h\fR\fR |
| .ad |
| .RS 27n |
| The tecla header file |
| .RE |
| |
| .sp |
| .ne 2 |
| .na |
| \fB\fB~/.teclarc\fR\fR |
| .ad |
| .RS 27n |
| The personal tecla customization file |
| .RE |
| |
| .SH ATTRIBUTES |
| .LP |
| See \fBattributes\fR(5) for descriptions of the following attributes: |
| .sp |
| |
| .sp |
| .TS |
| box; |
| c | c |
| l | l . |
| ATTRIBUTE TYPE ATTRIBUTE VALUE |
| _ |
| Interface Stability Evolving |
| .TE |
| |
| .SH SEE ALSO |
| .LP |
| \fBvi\fR(1), \fBcpl_complete_word\fR(3TECLA), \fBef_expand_file\fR(3TECLA), |
| \fBgl_get_line\fR(3TECLA), \fBgl_io_mode\fR(3TECLA), \fBlibtecla\fR(3LIB), |
| \fBpca_lookup_file\fR(3TECLA), \fBattributes\fR(5) |