summaryrefslogtreecommitdiffstats
path: root/libtecla-1.6.1/html/tecla.html
diff options
context:
space:
mode:
Diffstat (limited to 'libtecla-1.6.1/html/tecla.html')
-rw-r--r--libtecla-1.6.1/html/tecla.html1120
1 files changed, 1120 insertions, 0 deletions
diff --git a/libtecla-1.6.1/html/tecla.html b/libtecla-1.6.1/html/tecla.html
new file mode 100644
index 0000000..6f270c1
--- /dev/null
+++ b/libtecla-1.6.1/html/tecla.html
@@ -0,0 +1,1120 @@
+<head>
+<title>Manual Page</title>
+</head>
+<body>
+<pre>
+<a href="tecla.html"><b>tecla</b></a> <a href="tecla.html"><b>tecla</b></a>
+
+
+
+</pre><h2>NAME</h2><pre>
+ tecla, teclarc - The user interface provided by the Tecla library.
+
+</pre><h2>DESCRIPTION</h2><pre>
+ 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 tcsh shell will find the default key-bindings
+ very familiar. Users of the bash shell will also find it quite famil-
+ iar, but with a few minor differences, most notably in how forward and
+ backward searches through the list of historical commands are per-
+ formed. There are two major editing modes, one with emacs-like key-
+ bindings and another with vi-like key-bindings. By default emacs mode
+ is enabled, but vi 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 com-
+ pletion is provided. If the application hasn't reconfigured this to
+ complete other types of symbols, then tab completion completes file-
+ names.
+
+
+</pre><h2>KEY SEQUENCE NOTATION</h2><pre>
+ In the rest of this man page, and also in all Tecla configuration
+ files, key-sequences are expressed as follows.
+
+
+ ^A or C-a
+ This is a control-A, entered by pressing the control key at
+ the same time as the A key.
+
+ \E or M-
+ 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 M-p 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.
+
+ up
+ This refers to the up-arrow key.
+
+ down
+ This refers to the down-arrow key.
+
+ left
+ This refers to the left-arrow key.
+
+ right
+ This refers to the right-arrow key.
+
+ a
+ This is just a normal A key.
+
+
+
+</pre><h2>THE TECLA CONFIGURATION FILE</h2><pre>
+ By default, Tecla looks for a file called .teclarc in your home direc-
+ tory (ie. ~/.teclarc). If it finds this file, it reads it, interpret-
+ ing each line as defining a new key binding or an editing configuration
+ option. Since the emacs keybindings are installed by default, if you
+ want to use the non-default vi editing mode, the most important item to
+ go in this file is the following line:
+
+ edit-mode vi
+
+ This will re-configure the default bindings for vi-mode. The complete
+ set of arguments that this command accepts are:
+
+ vi - Install key-bindings like those of the vi
+ editor.
+ emacs - Install key-bindings like those of the emacs
+ editor. This is the default.
+ none - Use just the native line editing facilities
+ provided by the terminal driver.
+
+ To prevent the terminal bell from being rung, such as when an unrecog-
+ nized control-sequence is typed, place the following line in the con-
+ figuration file:
+
+ nobeep
+
+ An example of a key binding line in the configuration file is the fol-
+ lowing.
+
+ bind M-[2~ insert-mode
+
+ On many keyboards, the above key sequence is generated when one presses
+ the insert key, so with this keybinding, one can toggle between the
+ emacs-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 M- 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 fol-
+ lowing 2 ways.
+
+ 1. Hit the escape key momentarily, then press '[', then '2', then
+ finally '~'.
+
+ 2. Press the meta key at the same time as pressing the '[' key,
+ then press '2', then '~'.
+
+ If you set a keybinding 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.
+
+ Starting with versions of libtecla later than 1.3.3 it is now possible
+ to bind keysequences that begin with a printable character. Previously
+ key-sequences were required to start with a control or meta character.
+
+ Note that the special keywords "up", "down", "left" and "right" refer
+ to the arrow keys, and are thus not treated as keysequences. 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:
+
+ bind up history-search-backwards
+ bind down history-search-backwards
+
+ 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 exam-
+ ple, by not specifying an action function, the following command
+ unbinds the default beginning-of-line action from the ^A key sequence:
+
+ bind ^A
+
+ If you create a ~/.teclarc 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.
+
+
+</pre><h2>FILENAME AND TILDE COMPLETION</h2><pre>
+ With the default key bindings, pressing the TAB key (aka. ^I) results
+ in Tecla attempting to complete the incomplete filename that precedes
+ the cursor. Tecla searches backwards from the cursor, looking for the
+ start of the filename, 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 filename up to the point at which the ambiguous
+ matches start to differ, then lists the possible matches.
+
+ In addition to literally written filenames, Tecla can complete files
+ that start with ~/ and ~user/ expressions and that contain $envvar
+ expressions. In particular, if you hit TAB within an incomplete ~user,
+ expression, Tecla will attempt to complete the username, listing any
+ ambiguous matches.
+
+ The completion binding is implemented using the cpl_word_completions()
+ function, which is also available separately to users of this library.
+ See the cpl_word_completions(@LIBR_MANEXT@) man page for more details.
+
+
+</pre><h2>FILENAME EXPANSION</h2><pre>
+ With the default key bindings, pressing ^X* causes Tecla to expand the
+ filename that precedes the cursor, replacing ~/ and ~user/ expressions
+ with the corresponding home directories, and replacing $envvar expres-
+ sions with the value of the specified environment variable, then if
+ there are any wildcards, replacing the so far expanded filename with a
+ space-separated list of the files which match the wild cards.
+
+ The expansion binding is implemented using the ef_expand_file() func-
+ tion. See the <a href="ef_expand_file.html"><b>ef_expand_file</b></a> man page for more details.
+
+
+</pre><h2>RECALLING PREVIOUSLY TYPED LINES</h2><pre>
+ Every time that a new line is entered by the user, it is appended to a
+ list of historical input lines maintained within the GetLine 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 ^P, and ^N
+ keys, and in vi 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.
+
+ Note that in vi mode, all of the history recall functions switch the
+ library into command mode.
+
+ In emacs mode the M-p and M-n keys work just like the ^P and ^N keys,
+ except that they skip all but those historical lines which share the
+ prefix that precedes the cursor. In vi 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 pre-
+ cedes it.
+
+ Thus for example, suppose that you were in emacs mode, and you had just
+ entered the following list of commands in the order shown:
+
+ ls ~/tecla/
+ cd ~/tecla
+ ls -l getline.c
+ emacs ~/tecla/getline.c
+
+ If you next typed:
+
+ ls
+
+ and then hit M-p, then rather than returning the previously typed emacs
+ line, which doesn't start with "ls", Tecla would recall the "ls -l get-
+ line.c" line. Pressing M-p again would recall the "ls ~/tecla/" line.
+
+ Note that if the string that you are searching for, contains any of the
+ special characters, *, ?, or '[', then it is interpretted as a pattern
+ to be matched. Thus, cotinuing with the above example, after typing in
+ the list of commands shown, if you then typed:
+
+ *tecla*
+
+ and hit M-p, then the "emacs ~/tecla/getline.c" line would be recalled
+ first, since it contains the word tecla somewhere in the line, Simi-
+ larly, hitting M-p again, would recall the "ls ~/tecla/" line, and hit-
+ ting it once more would recall the "ls ~/tecla/" line. The pattern syn-
+ tax is the same as that described for filename expansion, in the
+ ef_expand_file(@LIBR_MANEXT@ man page.
+
+
+</pre><h2>HISTORY FILES</h2><pre>
+ Authors of programs that use the Tecla library have the option of sav-
+ ing 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 differ-
+ ent applications don't get mixed up.
+
+
+</pre><h2>INTERNATIONAL CHARACTER SETS</h2><pre>
+ Since libtecla 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,
+
+ setlocale(LC_CTYPE, "");
+
+ then the current locale is determined by the first of the environment
+ variables LC_CTYPE, LC_ALL, and LANG, that is found to contain a valid
+ locale name. If none of these variables are defined, or the program
+ neglects to call setlocale, 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:
+
+ locale -a
+
+ at the shell prompt.
+
+
+ Meta keys and locales
+ Beware that in most locales other than the default C locale, meta char-
+ acters become printable, and they are then no longer considered to
+ match M-c 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 actu-
+ ally two ways to do this. For example the binding M-c 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 usu-
+ ally have a way to request this behavior, so you can continue to use
+ the meta key on most systems.
+
+ 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 EightBitInput X
+ resource to False. You can either do this by placing a line like the
+ following in your ~/.Xdefaults file,
+
+ XTerm*EightBitInput: False
+
+ or by starting an xterm with an -xrm '*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 dis-
+ played 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 Dtterm*KshMode
+ resource to True.
+
+
+ Entering international characters
+ 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 my laptop the xev program reports that pressing this key gen-
+ erates keycode 115, so to turn this key into a compose key, I do the
+ following:
+
+ xmodmap -e 'keycode 115 = Multi_key'
+
+ I can then enter an i with a umlaut over it by typing this key, fol-
+ lowed by ", followed by i.
+
+
+</pre><h2>THE AVAILABLE KEY BINDING FUNCTIONS</h2><pre>
+ 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 combina-
+ tion of keys should invoke. They are also used in the next two sections
+ to list the default key-bindings in emacs and vi modes.
+
+ user-interrupt - Send a SIGINT signal to the
+ parent process.
+ abort - Send a SIGABRT signal to the
+ parent process.
+ suspend - Suspend the parent process.
+ stop-output - Pause terminal output.
+ start-output - Resume paused terminal output.
+ literal-next - Arrange for the next character
+ to be treated as a normal
+ character. This allows control
+ characters to be entered.
+ cursor-right - Move the cursor one character
+ right.
+ cursor-left - Move the cursor one character
+ left.
+ insert-mode - Toggle between insert mode and
+ overwrite mode.
+ beginning-of-line - Move the cursor to the
+ beginning of the line.
+ end-of-line - Move the cursor to the end of
+ the line.
+ delete-line - Delete the contents of the
+ current line.
+ kill-line - Delete everything that follows
+ the cursor.
+ backward-kill-line - Delete all characters between
+ the cursor and the start of the
+ line.
+ forward-word - Move to the end of the word
+ which follows the cursor.
+ forward-to-word - Move the cursor to the start of
+ the word that follows the
+ cursor.
+ backward-word - Move to the start of the word
+ which precedes the cursor.
+ goto-column - Move the cursor to the
+ 1-relative column in the line
+ specified by any preceding
+ digit-argument sequences (see
+ ENTERING REPEAT COUNTS below).
+ find-parenthesis - 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.
+ forward-delete-char - Delete the character under the
+ cursor.
+ backward-delete-char - Delete the character which
+ precedes the cursor.
+ list-or-eof - This is intended for binding
+ to ^D. 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 gl_get_line().
+ del-char-or-list-or-eof - This is intended for binding
+ to ^D. 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 gl_get_line().
+ forward-delete-word - Delete the word which follows
+ the cursor.
+ backward-delete-word - Delete the word which precedes
+ the cursor.
+ upcase-word - Convert all of the characters
+ of the word which follows the
+ cursor, to upper case.
+ downcase-word - Convert all of the characters
+ of the word which follows the
+ cursor, to lower case.
+ capitalize-word - Capitalize the word which
+ follows the cursor.
+ change-case - If the next character is upper
+ case, toggle it to lower case
+ and vice versa.
+ redisplay - Redisplay the line.
+ clear-screen - Clear the terminal, then
+ redisplay the current line.
+ transpose-chars - Swap the character under the
+ cursor with the character just
+ before the cursor.
+ set-mark - Set a mark at the position of
+ the cursor.
+ exchange-point-and-mark - Move the cursor to the last
+ mark that was set, and move
+ the mark to where the cursor
+ used to be.
+ kill-region - Delete the characters that lie
+ between the last mark that was
+ set, and the cursor.
+ copy-region-as-kill - Copy the text between the mark
+ and the cursor to the cut
+ buffer, without deleting the
+ original text.
+ yank - Insert the text that was last
+ deleted, just before the
+ current position of the cursor.
+ append-yank - Paste the current contents of
+ the cut buffer, after the
+ cursor.
+ up-history - Recall the next oldest line
+ that was entered. Note that
+ in vi mode you are left in
+ command mode.
+ down-history - 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.
+ history-search-backward - Recall the next oldest line
+ who's prefix matches the string
+ which currently precedes the
+ cursor (in vi command-mode the
+ character under the cursor is
+ also included in the search
+ string). Note that in vi mode
+ you are left in command mode.
+ history-search-forward - Recall the next newest line
+ who's prefix matches the string
+ which currently precedes the
+ cursor (in vi command-mode the
+ character under the cursor is
+ also included in the search
+ string). Note that in vi mode
+ you are left in command mode.
+ history-re-search-backward -Recall the next oldest line
+ who's prefix matches that
+ established by the last
+ invocation of either
+ history-search-forward or
+ history-search-backward.
+ history-re-search-forward - Recall the next newest line
+ who's prefix matches that
+ established by the last
+ invocation of either
+ history-search-forward or
+ history-search-backward.
+ complete-word - Attempt to complete the
+ incomplete word which
+ precedes the cursor. Unless
+ the host program has customized
+ word completion, filename
+ completion is attempted. In vi
+ commmand mode the character
+ under the cursor is also
+ included in the word being
+ completed, and you are left in
+ vi insert mode.
+ expand-filename - Within the command line, expand
+ wild cards, tilde expressions
+ and dollar expressions in the
+ filename which immediately
+ precedes the cursor. In vi
+ commmand mode the character
+ under the cursor is also
+ included in the filename being
+ expanded, and you are left in
+ vi insert mode.
+ list-glob - List any filenames which match
+ the wild-card, tilde and dollar
+ expressions in the filename
+ which immediately precedes the
+ cursor, then redraw the input
+ line unchanged.
+ list-history - Display the contents of the
+ history list for the current
+ history group. If a repeat
+ count of &gt; 1 is specified,
+ only that many of the most
+ recent lines are displayed.
+ See the "ENTERING REPEAT
+ COUNTS" section.
+ read-from-file - Temporarily switch to reading
+ input from the file who's
+ name precedes the cursor.
+ read-init-files - Re-read teclarc configuration
+ files.
+ beginning-of-history - Move to the oldest line in the
+ history list. Note that in vi
+ mode you are left in command
+ mode.
+ end-of-history - Move to the newest line in the
+ history list (ie. the current
+ line). Note that in vi mode
+ this leaves you in command
+ mode.
+ digit-argument - Enter a repeat count for the
+ next key-binding function.
+ For details, see the ENTERING
+ REPEAT COUNTS section.
+ newline - Terminate and return the
+ current contents of the
+ line, after appending a
+ newline character. The newline
+ character is normally '\n',
+ 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
+ '\n' newline character or the
+ '\r' carriage return
+ character, the line is
+ appended to the history
+ buffer.
+ repeat-history - 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.
+ ring-bell - Ring the terminal bell, unless
+ the bell has been silenced via
+ the nobeep configuration
+ option (see the THE TECLA
+ CONFIGURATION FILE section).
+ forward-copy-char - Copy the next character into
+ the cut buffer (NB. use repeat
+ counts to copy more than one).
+ backward-copy-char - Copy the previous character
+ into the cut buffer.
+ forward-copy-word - Copy the next word into the cut
+ buffer.
+ backward-copy-word - Copy the previous word into the
+ cut buffer.
+ forward-find-char - Move the cursor to the next
+ occurrence of the next
+ character that you type.
+ backward-find-char - Move the cursor to the last
+ occurrence of the next
+ character that you type.
+ forward-to-char - Move the cursor to the
+ character just before the next
+ occurrence of the next
+ character that the user types.
+ backward-to-char - Move the cursor to the
+ character just after the last
+ occurrence before the cursor
+ of the next character that the
+ user types.
+ repeat-find-char - Repeat the last
+ backward-find-char,
+ forward-find-char,
+ backward-to-char or
+ forward-to-char.
+ invert-refind-char - Repeat the last
+ backward-find-char,
+ forward-find-char,
+ backward-to-char, or
+ forward-to-char in the
+ opposite direction.
+ delete-to-column - Delete the characters from the
+ cursor up to the column that
+ is specified by the repeat
+ count.
+ delete-to-parenthesis - Delete the characters from the
+ cursor up to and including
+ the matching parenthesis, or
+ next close parenthesis.
+ forward-delete-find - Delete the characters from the
+ cursor up to and including the
+ following occurence of the
+ next character typed.
+ backward-delete-find - Delete the characters from the
+ cursor up to and including the
+ preceding occurence of the
+ next character typed.
+ forward-delete-to - Delete the characters from the
+ cursor up to, but not
+ including, the following
+ occurence of the next
+ character typed.
+ backward-delete-to - Delete the characters from the
+ cursor up to, but not
+ including, the preceding
+ occurence of the next
+ character typed.
+ delete-refind - Repeat the last *-delete-find
+ or *-delete-to action.
+ delete-invert-refind - Repeat the last *-delete-find
+ or *-delete-to action, in the
+ opposite direction.
+ copy-to-column - Copy the characters from the
+ cursor up to the column that
+ is specified by the repeat
+ count, into the cut buffer.
+ copy-to-parenthesis - Copy the characters from the
+ cursor up to and including
+ the matching parenthesis, or
+ next close parenthesis, into
+ the cut buffer.
+ forward-copy-find - Copy the characters from the
+ cursor up to and including the
+ following occurence of the
+ next character typed, into the
+ cut buffer.
+ backward-copy-find - Copy the characters from the
+ cursor up to and including the
+ preceding occurence of the
+ next character typed, into the
+ cut buffer.
+ forward-copy-to - Copy the characters from the
+ cursor up to, but not
+ including, the following
+ occurence of the next
+ character typed, into the cut
+ buffer.
+ backward-copy-to - Copy the characters from the
+ cursor up to, but not
+ including, the preceding
+ occurence of the next
+ character typed, into the cut
+ buffer.
+ copy-refind - Repeat the last *-copy-find
+ or *-copy-to action.
+ copy-invert-refind - Repeat the last *-copy-find
+ or *-copy-to action, in the
+ opposite direction.
+ vi-mode - Switch to vi mode from emacs
+ mode.
+ emacs-mode - Switch to emacs mode from vi
+ mode.
+ vi-insert - From vi command mode, switch to
+ insert mode.
+ vi-overwrite - From vi command mode, switch to
+ overwrite mode.
+ vi-insert-at-bol - From vi command mode, move the
+ cursor to the start of the line
+ and switch to insert mode.
+ vi-append-at-eol - From vi command mode, move the
+ cursor to the end of the line
+ and switch to append mode.
+ vi-append - From vi command mode, move the
+ cursor one position right, and
+ switch to insert mode.
+ vi-replace-char - From vi command mode, replace
+ the character under the cursor
+ with the the next character
+ entered.
+ vi-forward-change-char - From vi command mode, delete
+ the next character then enter
+ insert mode.
+ vi-backward-change-char - From vi command mode, delete
+ the preceding character then
+ enter insert mode.
+ vi-forward-change-word - From vi command mode, delete
+ the next word then enter
+ insert mode.
+ vi-backward-change-word - From vi command mode, delete
+ the preceding word then
+ enter insert mode.
+ vi-change-rest-of-line - From vi command mode, delete
+ from the cursor to the end of
+ the line, then enter insert
+ mode.
+ vi-change-line - From vi command mode, delete
+ the current line, then enter
+ insert mode.
+ vi-change-to-bol - From vi command mode, delete
+ all characters between the
+ cursor and the beginning of
+ the line, then enter insert
+ mode.
+ vi-change-to-column - From vi command mode, delete
+ the characters from the cursor
+ up to the column that is
+ specified by the repeat count,
+ then enter insert mode.
+ vi-change-to-parenthesis - Delete the characters from the
+ cursor up to and including
+ the matching parenthesis, or
+ next close parenthesis, then
+ enter vi insert mode.
+ vi-forward-change-find - From vi command mode, delete
+ the characters from the
+ cursor up to and including the
+ following occurence of the
+ next character typed, then
+ enter insert mode.
+ vi-backward-change-find - From vi command mode, delete
+ the characters from the
+ cursor up to and including the
+ preceding occurence of the
+ next character typed, then
+ enter insert mode.
+ vi-forward-change-to - From vi command mode, delete
+ the characters from the
+ cursor up to, but not
+ including, the following
+ occurence of the next
+ character typed, then enter
+ insert mode.
+ vi-backward-change-to - From vi command mode, delete
+ the characters from the
+ cursor up to, but not
+ including, the preceding
+ occurence of the next
+ character typed, then enter
+ insert mode.
+ vi-change-refind - Repeat the last
+ vi-*-change-find or
+ vi-*-change-to action.
+ vi-change-invert-refind - Repeat the last
+ vi-*-change-find or
+ vi-*-change-to action, in the
+ opposite direction.
+ vi-undo - In vi mode, undo the last
+ editing operation.
+ vi-repeat-change - In vi command mode, repeat the
+ last command that modified the
+ line.
+
+
+</pre><h2>DEFAULT KEY BINDINGS IN EMACS MODE</h2><pre>
+ The following default key bindings, which can be overriden by the Tecla
+ configuration file, are designed to mimic most of the bindings of the
+ unix tcsh shell, when it is in emacs editing mode.
+
+ This is the default editing mode of the Tecla library.
+
+ Under UNIX the terminal driver sets a number of special keys for cer-
+ tain functions. The tecla library attempts to use the same keybindings
+ 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.
+
+ ^C -&gt; user-interrupt
+ ^\ -&gt; abort
+ ^Z -&gt; suspend
+ ^Q -&gt; start-output
+ ^S -&gt; stop-output
+ ^V -&gt; literal-next
+
+ The cursor keys are refered to by name, as follows. This is necessary
+ because different types of terminals generate different key sequences
+ when their cursor keys are pressed.
+
+ right -&gt; cursor-right
+ left -&gt; cursor-left
+ up -&gt; up-history
+ down -&gt; down-history
+
+ The remaining bindings don't depend on the terminal setttings.
+
+ ^F -&gt; cursor-right
+ ^B -&gt; cursor-left
+ M-i -&gt; insert-mode
+ ^A -&gt; beginning-of-line
+ ^E -&gt; end-of-line
+ ^U -&gt; delete-line
+ ^K -&gt; kill-line
+ M-f -&gt; forward-word
+ M-b -&gt; backward-word
+ ^D -&gt; del-char-or-list-or-eof
+ ^H -&gt; backward-delete-char
+ ^? -&gt; backward-delete-char
+ M-d -&gt; forward-delete-word
+ M-^H -&gt; backward-delete-word
+ M-^? -&gt; backward-delete-word
+ M-u -&gt; upcase-word
+ M-l -&gt; downcase-word
+ M-c -&gt; capitalize-word
+ ^R -&gt; redisplay
+ ^L -&gt; clear-screen
+ ^T -&gt; transpose-chars
+ ^@ -&gt; set-mark
+ ^X^X -&gt; exchange-point-and-mark
+ ^W -&gt; kill-region
+ M-w -&gt; copy-region-as-kill
+ ^Y -&gt; yank
+ ^P -&gt; up-history
+ ^N -&gt; down-history
+ M-p -&gt; history-search-backward
+ M-n -&gt; history-search-forward
+ ^I -&gt; complete-word
+ ^X* -&gt; expand-filename
+ ^X^F -&gt; read-from-file
+ ^X^R -&gt; read-init-files
+ ^Xg -&gt; list-glob
+ ^Xh -&gt; list-history
+ M-&lt; -&gt; beginning-of-history
+ M-&gt; -&gt; end-of-history
+ \n -&gt; newline
+ \r -&gt; newline
+ M-o -&gt; repeat-history
+ M-^V -&gt; vi-mode
+
+ M-0, M-1, ... M-9 -&gt; digit-argument (see below)
+
+ Note that ^I is what the TAB key generates, and that ^@ can be gener-
+ ated 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.
+
+
+</pre><h2>DEFAULT KEY BINDINGS IN VI MODE</h2><pre>
+ The following default key bindings are designed to mimic the vi 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 vi command mode. Vi 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 vi, libtecla provides bindings for tab completion, wild-
+ card expansion of file names, and historical line recall.
+
+ To learn how to tell the Tecla library to use vi mode instead of the
+ default emacs editing mode, see the earlier section entitled THE TECLA
+ CONFIGURATION FILE.
+
+ Under UNIX the terminal driver sets a number of special keys for cer-
+ tain functions. The Tecla library attempts to use the same keybindings
+ 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 stty command to change these keys, then the default bindings should
+ match.
+
+ ^C -&gt; user-interrupt
+ ^\ -&gt; abort
+ ^Z -&gt; suspend
+ ^Q -&gt; start-output
+ ^S -&gt; stop-output
+ ^V -&gt; literal-next
+ M-^C -&gt; user-interrupt
+ M-^\ -&gt; abort
+ M-^Z -&gt; suspend
+ M-^Q -&gt; start-output
+ M-^S -&gt; stop-output
+
+ Note that above, most of the bindings are defined twice, once as a raw
+ control code like ^C and then a second time as a meta character like
+ M-^C. The former is the binding for vi input mode, whereas the latter
+ is the binding for vi 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 ta-
+ ble. Thus, once in command mode, when you type the letter i, for exam-
+ ple, the Tecla library actually looks up the binding for M-i.
+
+ The cursor keys are refered to by name, as follows. This is necessary
+ because different types of terminals generate different key sequences
+ when their cursor keys are pressed.
+
+ right -&gt; cursor-right
+ left -&gt; cursor-left
+ up -&gt; up-history
+ down -&gt; down-history
+
+ The cursor keys normally generate a keysequence 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).
+
+ The following are the terminal-independent key bindings for vi input
+ mode.
+
+ ^D -&gt; list-or-eof
+ ^G -&gt; list-glob
+ ^H -&gt; backward-delete-char
+ ^I -&gt; complete-word
+ \r -&gt; newline
+ \n -&gt; newline
+ ^L -&gt; clear-screen
+ ^N -&gt; down-history
+ ^P -&gt; up-history
+ ^R -&gt; redisplay
+ ^U -&gt; backward-kill-line
+ ^W -&gt; backward-delete-word
+ ^X* -&gt; expand-filename
+ ^X^F -&gt; read-from-file
+ ^X^R -&gt; read-init-files
+ ^? -&gt; backward-delete-char
+
+ The following are the key bindings that are defined in vi 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 Esc, and
+ then press h twice to move the cursor two positions to the left. Both h
+ characters get quietly converted to M-h 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.
+
+ M-\ -&gt; cursor-right (Meta-space)
+ M-$ -&gt; end-of-line
+ M-* -&gt; expand-filename
+ M-+ -&gt; down-history
+ M-- -&gt; up-history
+ M-&lt; -&gt; beginning-of-history
+ M-&gt; -&gt; end-of-history
+ M-^ -&gt; beginning-of-line
+ M-; -&gt; repeat-find-char
+ M-, -&gt; invert-refind-char
+ M-| -&gt; goto-column
+ M-~ -&gt; change-case
+ M-. -&gt; vi-repeat-change
+ M-% -&gt; find-parenthesis
+ M-a -&gt; vi-append
+ M-A -&gt; vi-append-at-eol
+ M-b -&gt; backward-word
+ M-B -&gt; backward-word
+ M-C -&gt; vi-change-rest-of-line
+ M-cb -&gt; vi-backward-change-word
+ M-cB -&gt; vi-backward-change-word
+ M-cc -&gt; vi-change-line
+ M-ce -&gt; vi-forward-change-word
+ M-cE -&gt; vi-forward-change-word
+ M-cw -&gt; vi-forward-change-word
+ M-cW -&gt; vi-forward-change-word
+ M-cF -&gt; vi-backward-change-find
+ M-cf -&gt; vi-forward-change-find
+ M-cT -&gt; vi-backward-change-to
+ M-ct -&gt; vi-forward-change-to
+ M-c; -&gt; vi-change-refind
+ M-c, -&gt; vi-change-invert-refind
+ M-ch -&gt; vi-backward-change-char
+ M-c^H -&gt; vi-backward-change-char
+ M-c^? -&gt; vi-backward-change-char
+ M-cl -&gt; vi-forward-change-char
+ M-c\ -&gt; vi-forward-change-char (Meta-c-space)
+ M-c^ -&gt; vi-change-to-bol
+ M-c0 -&gt; vi-change-to-bol
+ M-c$ -&gt; vi-change-rest-of-line
+ M-c| -&gt; vi-change-to-column
+ M-c% -&gt; vi-change-to-parenthesis
+ M-dh -&gt; backward-delete-char
+ M-d^H -&gt; backward-delete-char
+ M-d^? -&gt; backward-delete-char
+ M-dl -&gt; forward-delete-char
+ M-d -&gt; forward-delete-char (Meta-d-space)
+ M-dd -&gt; delete-line
+ M-db -&gt; backward-delete-word
+ M-dB -&gt; backward-delete-word
+ M-de -&gt; forward-delete-word
+ M-dE -&gt; forward-delete-word
+ M-dw -&gt; forward-delete-word
+ M-dW -&gt; forward-delete-word
+ M-dF -&gt; backward-delete-find
+ M-df -&gt; forward-delete-find
+ M-dT -&gt; backward-delete-to
+ M-dt -&gt; forward-delete-to
+ M-d; -&gt; delete-refind
+ M-d, -&gt; delete-invert-refind
+ M-d^ -&gt; backward-kill-line
+ M-d0 -&gt; backward-kill-line
+ M-d$ -&gt; kill-line
+ M-D -&gt; kill-line
+ M-d| -&gt; delete-to-column
+ M-d% -&gt; delete-to-parenthesis
+ M-e -&gt; forward-word
+ M-E -&gt; forward-word
+ M-f -&gt; forward-find-char
+ M-F -&gt; backward-find-char
+ M-- -&gt; up-history
+ M-h -&gt; cursor-left
+ M-H -&gt; beginning-of-history
+ M-i -&gt; vi-insert
+ M-I -&gt; vi-insert-at-bol
+ M-j -&gt; down-history
+ M-J -&gt; history-search-forward
+ M-k -&gt; up-history
+ M-K -&gt; history-search-backward
+ M-l -&gt; cursor-right
+ M-L -&gt; end-of-history
+ M-n -&gt; history-re-search-forward
+ M-N -&gt; history-re-search-backward
+ M-p -&gt; append-yank
+ M-P -&gt; yank
+ M-r -&gt; vi-replace-char
+ M-R -&gt; vi-overwrite
+ M-s -&gt; vi-forward-change-char
+ M-S -&gt; vi-change-line
+ M-t -&gt; forward-to-char
+ M-T -&gt; backward-to-char
+ M-u -&gt; vi-undo
+ M-w -&gt; forward-to-word
+ M-W -&gt; forward-to-word
+ M-x -&gt; forward-delete-char
+ M-X -&gt; backward-delete-char
+ M-yh -&gt; backward-copy-char
+ M-y^H -&gt; backward-copy-char
+ M-y^? -&gt; backward-copy-char
+ M-yl -&gt; forward-copy-char
+ M-y\ -&gt; forward-copy-char (Meta-y-space)
+ M-ye -&gt; forward-copy-word
+ M-yE -&gt; forward-copy-word
+ M-yw -&gt; forward-copy-word
+ M-yW -&gt; forward-copy-word
+ M-yb -&gt; backward-copy-word
+ M-yB -&gt; backward-copy-word
+ M-yf -&gt; forward-copy-find
+ M-yF -&gt; backward-copy-find
+ M-yt -&gt; forward-copy-to
+ M-yT -&gt; backward-copy-to
+ M-y; -&gt; copy-refind
+ M-y, -&gt; copy-invert-refind
+ M-y^ -&gt; copy-to-bol
+ M-y0 -&gt; copy-to-bol
+ M-y$ -&gt; copy-rest-of-line
+ M-yy -&gt; copy-line
+ M-Y -&gt; copy-line
+ M-y| -&gt; copy-to-column
+ M-y% -&gt; copy-to-parenthesis
+ M-^E -&gt; emacs-mode
+ M-^H -&gt; cursor-left
+ M-^? -&gt; cursor-left
+ M-^L -&gt; clear-screen
+ M-^N -&gt; down-history
+ M-^P -&gt; up-history
+ M-^R -&gt; redisplay
+ M-^D -&gt; list-or-eof
+ M-^I -&gt; complete-word
+ M-\r -&gt; newline
+ M-\n -&gt; newline
+ M-^X^R -&gt; read-init-files
+ M-^Xh -&gt; list-history
+
+ M-0, M-1, ... M-9 -&gt; digit-argument (see below)
+
+ Note that ^I is what the TAB key generates.
+
+
+</pre><h2>ENTERING REPEAT COUNTS</h2><pre>
+ Many of the key binding functions described previously, take an
+ optional count, typed in before the target keysequence. This is inter-
+ preted as a repeat count by most bindings. A notable exception is the
+ goto-column binding, which interprets the count as a column number.
+
+ 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 bind-
+ ings 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.
+
+ For example, in emacs mode, typing:
+
+ M-12a
+
+ causes the letter 'a' to be added to the line 12 times, whereas
+
+ M-4M-c
+
+ Capitalizes the next 4 words.
+
+ In vi command mode the Meta modifier is automatically added to all
+ characters typed in, so to enter a count in vi command-mode, just
+ involves typing in the number, just as it does in the vi editor itself.
+ So for example, in vi command mode, typing:
+
+ 4w2x
+
+ moves the cursor four words to the right, then deletes two characters.
+
+ 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.
+
+
+</pre><h2>FILES</h2><pre>
+ libtecla.a - The Tecla library
+ libtecla.h - The Tecla header file.
+ ~/.teclarc - The personal Tecla customization file.
+
+
+</pre><h2>SEE ALSO</h2><pre>
+ <a href="libtecla.html"><b>libtecla</b></a>, <a href="gl_get_line.html"><b>gl_get_line</b></a>, <a href="gl_io_mode.html"><b>gl_io_mode</b></a>, <a href="ef_expand_file.html"><b>ef_expand_file</b></a>,
+ <a href="cpl_complete_word.html"><b>cpl_complete_word</b></a>, <a href="pca_lookup_file.html"><b>pca_lookup_file</b></a>
+
+
+</pre><h2>AUTHOR</h2><pre>
+ Martin Shepherd (mcs@astro.caltech.edu)
+
+
+
+ <a href="tecla.html"><b>tecla</b></a>
+</pre>
+</body>