Home Man
Search
Today's Posts
Register

Linux & Unix Commands - Search Man Pages

OpenSolaris 2009.06 - man page for tecla (opensolaris section 5)

tecla(5)		       Standards, Environments, and Macros			 tecla(5)

NAME
       tecla, teclarc - User interface provided by the tecla library.

DESCRIPTION
       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
       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 edit-
       ing modes, one with emacs-like key bindings and another	with  vi-like  key  bindings.  By
       default emacs mode is enabled, but vi(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.

   Key Sequence Notation
       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.

       \fR 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.

   The Tecla Configuration File
       By  default,  tecla  looks  for	a  file  called  .teclarc  in  your  home  directory (ie.
       ~/.teclarc). If it finds this file, it reads it, interpreting each line as defining a  new
       key binding or an editing configuration option. Since the emacs key-bindings 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  unrecognized  control-
       sequence is typed, place the following line in the configuration file:

	 nobeep

       An example of a key binding line in the configuration file is the following.

	 bind M-[2~ insert-mode

       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 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
       following 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 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.

       Starting  with  versions  of  libtecla  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.

       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:

	 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 example, by not specifying an action func-
       tion, 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.

   Filename and Tilde Completion
       With  the default key bindings, pressing the TAB key (aka. ^I) 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.

       In addition to literally written file names, 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, list-
       ing any ambiguous matches.

       The  completion	binding  is  implemented using the cpl_complete_word() function, which is
       also available separately to users of this library. See the cpl_complete_word(3TECLA)  man
       page for more details.

   Filename Expansion
       With the default key bindings, pressing ^X* causes tecla to expand the file name that pre-
       cedes the cursor, replacing ~/ and ~user/ expressions with the corresponding home directo-
       ries,  and replacing $envvar expressions with the value of the specified environment vari-
       able, 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.

       The  expansion  binding	is  implemented  using	the  ef_expand_file()  function.  See the
       ef_expand_file(3TECLA) man page for more details.

   Recalling Previously Typed Lines
       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 fol-
       lowing 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 getline.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  charac-
       ters,  *,  ?,  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, Similarly, hitting M-p 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
       ef_expand_file(3TECLA).

   History Files
       Authors of programs that use the tecla library have the option of saving  historical  com-
       mand-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.

   International Character Sets
       Since libtecla version 1.4.0, tecla has been 8-bit clean. This means that all 8-bit  char-
       acters  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 characters become print-
       able, 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 trigger-
       ing META key bindings. You can still invoke META bindings, since there  are  actually  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.  More-
       over,  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.

       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 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 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 a laptop, for example, the  xev  program  might
       report that pressing this key generates keycode 115. To turn this key into a COMPOSE  key,
       do the following:

	 xmodmap -e 'keycode 115 = Multi_key'

       Type this key followed by a " character to enter an 'I' with a umlaut over it.

   The Available Key Binding Functions
       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 emacs and vi modes.

       user-interrupt		     Send a SIGINT 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  speci-
				     fied 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 parenthe-
				     sis.

       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  comple-
				     tions 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 call-
				     er 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 cur-
				     rent position of the cursor.

       append-yank		     Paste the current contents of the cut buffer, after the cur-
				     sor.

       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 estab-
				     lished by the last invocation of either  history-search-for-
				     ward or history-search-backward.

       history-re-search-forward     Recall the next newest line who's prefix matches that estab-
				     lished by the last invocation of either  history-search-for-
				     ward or history-search-backward.

       complete-word		     Attempt  to  complete the incomplete word which precedes the
				     cursor. Unless the host program has customized word  comple-
				     tion, file name 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 expres-
				     sions and dollar expressions in the file name which  immedi-
				     ately precedes the cursor. In vi commmand mode the character
				     under the cursor is also included in  the	file  name  being
				     expanded, and you are left in vi insert mode.

       list-glob		     List  any	file  names  which match the wild-card, tilde and
				     dollar expressions in the file name which	immediately  pre-
				     cedes 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 > 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 nor-
				     mally '0, 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'acarriagesreturnecharacter,
				     '0  newline  character  or the '
				     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 Tecla  Configu-
				     ration 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 occur-
				     rence of the next character that the user types.

       backward-to-char 	     Move  the cursor to the character just after the last occur-
				     rence before the cursor of the next character that the  user
				     types.

       repeat-find-char 	     Repeat the last backward-find-char, forward-find-char, back-
				     ward-to-char or forward-to-char.

       invert-refind-char	     Repeat the last backward-find-char, forward-find-char, back-
				     ward-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 includ-
				     ing, the following occurence of the next character typed.

       backward-delete-to	     Delete the characters from the cursor up to, but not includ-
				     ing, 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 includ-
				     ing, 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 includ-
				     ing, 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 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 cur-
				     sor 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.

   Default Key Bindings In emacs Mode
       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 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 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.

       ^C    user-interrupt

       ^\fR  abort

       ^Z    suspend

       ^Q    start-output

       ^S    stop-output

       ^V    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	cursor-right

       left	cursor-left

       up	up-history

       down	down-history

       The remaining bindings don't depend on the terminal setttings.

       ^F		    cursor-right

       ^B		    cursor-left

       M-i		    insert-mode

       ^A		    beginning-of-line

       ^E		    end-of-line

       ^U		    delete-line

       ^K		    kill-line

       M-f		    forward-word

       M-b		    backward-word

       ^D		    del-char-or-list-or-eof

       ^H		    backward-delete-char

       ^?		    backward-delete-char

       M-d		    forward-delete-word

       M-^H		    backward-delete-word

       M-^?		    backward-delete-word

       M-u		    upcase-word

       M-l		    downcase-word

       M-c		    capitalize-word

       ^R		    redisplay

       ^L		    clear-screen

       ^T		    transpose-chars

       ^@		    set-mark

       ^X^X		    exchange-point-and-mark

       ^W		    kill-region

       M-w		    copy-region-as-kill

       ^Y		    yank

       ^P		    up-history

       ^N		    down-history

       M-p		    history-search-backward

       M-n		    history-search-forward

       ^I		    complete-word

       ^X*		    expand-filename

       ^X^F		    read-from-file

       ^X^R		    read-init-files

       ^Xg		    list-glob

       ^Xh		    list-history

       M-<		    beginning-of-history

       M->		    end-of-history

       0fR		    newline

			    newline

       M-o		    repeat-history

       M-^V		    vi-mode

       M-0, M-1, ... M-9    digit-argument (see below)

       Note that ^I is what the TAB key generates, and that ^@	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.

   Default Key Bindings in vi Mode
       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 ini-
       tial character input mode, editing functions instead being  provided  by  the  vi  command
       mode. The 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 his-
       torical 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 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 bind-
       ings 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      user-interrupt

       ^\fR    abort

       ^Z      suspend

       ^Q      start-output

       ^S      stop-output

       ^V      literal-next

       M-^C    user-interrupt

       M-^\fR  abort

       M-^Z    suspend

       M-^Q    start-output

       M-^S    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 table. Thus, once in command mode, when you  type
       the letter i, for example, 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	cursor-right

       left	cursor-left

       up	up-history

       down	down-history

       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).

       The following are the terminal-independent key bindings for vi input mode.

       ^D      list-or-eof

       ^G      list-glob

       ^H      backward-delete-char

       ^I      complete-word

	       newline

       0fR     newline

       ^L      clear-screen

       ^N      down-history

       ^P      up-history

       ^R      redisplay

       ^U      backward-kill-line

       ^W      backward-delete-word

       ^X*     expand-filename

       ^X^F    read-from-file

       ^X^R    read-init-files

       ^?      backward-delete-char

       The following are the key bindings that are defined in vi command mode, this being  speci-
       fied  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  typ-
       ing  ESCAPE,  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  ta-
       ble,  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-\fR		    cursor-right (META-space)

       M-$		    end-of-line

       M-*		    expand-filename

       M-+		    down-history

       M--		    up-history

       M-<		    beginning-of-history

       M->		    end-of-history

       M-^		    beginning-of-line

       M-		    repeat-find-char

       M-,		    invert-refind-char

       M-|		    goto-column

       M-~		    change-case

       M-.		    vi-repeat-change

       M-%		    find-parenthesis

       M-a		    vi-append

       M-A		    vi-append-at-eol

       M-b		    backward-word

       M-B		    backward-word

       M-C		    vi-change-rest-of-line

       M-cb		    vi-backward-change-word

       M-cB		    vi-backward-change-word

       M-cc		    vi-change-line

       M-ce		    vi-forward-change-word

       M-cE		    vi-forward-change-word

       M-cw		    vi-forward-change-word

       M-cW		    vi-forward-change-word

       M-cF		    vi-backward-change-find

       M-cf		    vi-forward-change-find

       M-cT		    vi-backward-change-to

       M-ct		    vi-forward-change-to

       M-c;		    vi-change-refind

       M-c,		    vi-change-invert-refind

       M-ch		    vi-backward-change-char

       M-c^H		    vi-backward-change-char

       M-c^?		    vi-backward-change-char

       M-cl		    vi-forward-change-char

       M-c\fR		    vi-forward-change-char (META-c-space)

       M-c^		    vi-change-to-bol

       M-c0		    vi-change-to-bol

       M-c$		    vi-change-rest-of-line

       M-c|		    vi-change-to-column

       M-c%		    vi-change-to-parenthesis

       M-dh		    backward-delete-char

       M-d^H		    backward-delete-char

       M-d^?		    backward-delete-char

       M-dl		    forward-delete-char

       M-d		    forward-delete-char (META-d-space)

       M-dd		    delete-line

       M-db		    backward-delete-word

       M-dB		    backward-delete-word

       M-de		    forward-delete-word

       M-dE		    forward-delete-word

       M-dw		    forward-delete-word

       M-dW		    forward-delete-word

       M-dF		    backward-delete-find

       M-df		    forward-delete-find

       M-dT		    backward-delete-to

       M-dt		    forward-delete-to

       M-d;		    delete-refind

       M-d,		    delete-invert-refind

       M-d^		    backward-kill-line

       M-d0		    backward-kill-line

       M-d$		    kill-line

       M-D		    kill-line

       M-d|		    delete-to-column

       M-d%		    delete-to-parenthesis

       M-e		    forward-word

       M-E		    forward-word

       M-f		    forward-find-char

       M-F		    backward-find-char

       M--		    up-history

       M-h		    cursor-left

       M-H		    beginning-of-history

       M-i		    vi-insert

       M-I		    vi-insert-at-bol

       M-j		    down-history

       M-J		    history-search-forward

       M-k		    up-history

       M-K		    history-search-backward

       M-l		    cursor-right

       M-L		    end-of-history

       M-n		    history-re-search-forward

       M-N		    history-re-search-backward

       M-p		    append-yank

       M-P		    yank

       M-r		    vi-replace-char

       M-R		    vi-overwrite

       M-s		    vi-forward-change-char

       M-S		    vi-change-line

       M-t		    forward-to-char

       M-T		    backward-to-char

       M-u		    vi-undo

       M-w		    forward-to-word

       M-W		    forward-to-word

       M-x		    forward-delete-char

       M-X		    backward-delete-char

       M-yh		    backward-copy-char

       M-y^H		    backward-copy-char

       M-y^?		    backward-copy-char

       M-yl		    forward-copy-char

       M-y\fR		    forward-copy-char (META-y-space)

       M-ye		    forward-copy-word

       M-yE		    forward-copy-word

       M-yw		    forward-copy-word

       M-yW		    forward-copy-word

       M-yb		    backward-copy-word

       M-yB		    backward-copy-word

       M-yf		    forward-copy-find

       M-yF		    backward-copy-find

       M-yt		    forward-copy-to

       M-yT		    backward-copy-to

       M-y;		    copy-refind

       M-y,		    copy-invert-refind

       M-y^		    copy-to-bol

       M-y0		    copy-to-bol

       M-y$		    copy-rest-of-line

       M-yy		    copy-line

       M-Y		    copy-line

       M-y|		    copy-to-column

       M-y%		    copy-to-parenthesis

       M-^E		    emacs-mode

       M-^H		    cursor-left

       M-^?		    cursor-left

       M-^L		    clear-screen

       M-^N		    down-history

       M-^P		    up-history

       M-^R		    redisplay

       M-^D		    list-or-eof

       M-^I		    complete-word

       M-		    newline

       M-0fR		    newline

       M-^X^R		    read-init-files

       M-^Xh		    list-history

       M-0, M-1, ... M-9    digit-argument (see below)

       Note that ^I is what the TAB key generates.

   Entering Repeat Counts
       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  num-
       ber.

       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  ter-
       minated	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.

FILES
       /usr/lib/libtecla.so	  The tecla library

       /usr/include/libtecla.h	  The tecla header file

       ~/.teclarc		  The personal tecla customization file

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       +-----------------------------+-----------------------------+
       |      ATTRIBUTE TYPE	     |	    ATTRIBUTE VALUE	   |
       +-----------------------------+-----------------------------+
       |Availability		     |SUNWtecla 		   |
       +-----------------------------+-----------------------------+
       |Interface Stability	     |Evolving			   |
       +-----------------------------+-----------------------------+

SEE ALSO
       vi(1),	  cpl_complete_word(3TECLA),	 ef_expand_file(3TECLA),     gl_get_line(3TECLA),
       gl_io_mode(3TECLA), libtecla(3LIB), pca_lookup_file(3TECLA), attributes(5)

SunOS 5.11				   20 May 2004					 tecla(5)


All times are GMT -4. The time now is 07:00 PM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
UNIX.COM Login
Username:
Password:  
Show Password