tecla man page on SunOS

Man page or keyword search:  
man Server   20652 pages
apropos Keyword Search (all sections)
Output format
SunOS logo
[printable version]

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	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(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 com‐
       pletion 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	direc‐
       tory (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 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 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 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 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.	Previ‐
       ously key sequences were required to start with a CONTROL or META char‐
       acter.

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

   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,  listing  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 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 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()	 func‐
       tion. 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 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  file  name  expansion,  in  the
       ef_expand_file(3TECLA).

   History Files
       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.

   International Character Sets
       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
       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.  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 a laptop, for example, the  xev  program  might  report  that
       pressing	 this  key generates keycode 115. To turn this key into a COM‐
       POSE  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 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.

       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 over‐
				       write 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 cur‐
				       sor.

       backward-kill-line	       Delete  all characters between the cur‐
				       sor and the start of the line.

       forward-word		       Move to the end of the word which  fol‐
				       lows 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 col‐
				       umn in the line specified by  any  pre‐
				       ceding  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 com‐
				       pletions	 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 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().

       forward-delete-word	       Delete  the word which follows the cur‐
				       sor.

       backward-delete-word	       Delete the word which precedes the cur‐
				       sor.

       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 cur‐
				       sor.

       set-mark			       Set a mark at the position of the  cur‐
				       sor.

       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 ses‐
				       sion 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 pre‐
				       fix 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 pre‐
				       fix 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 pre‐
				       fix matches  that  established  by  the
				       last   invocation  of  either  history-
				       search-forward or  history-search-back‐
				       ward.

       history-re-search-forward       Recall  the next newest line who's pre‐
				       fix matches  that  established  by  the
				       last   invocation  of  either  history-
				       search-forward or  history-search-back‐
				       ward.

       complete-word		       Attempt to complete the incomplete word
				       which precedes the cursor.  Unless  the
				       host  program  has customized word com‐
				       pletion,	 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  expressions  and	dollar
				       expressions  in	the  file  name	 which
				       immediately  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 con‐
				       tents of the line,  after  appending  a
				       newline	character. The newline charac‐
				       ter is normally '',  but	 will  be  the
				       first  character	 of  the  key sequence
				       that invoked  the  newline  action,  if
				       this  happens to be a printable charac‐
				       ter.  If the action was invok'dcarriage
				       '' newline character or the '
				       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  con‐
				       figuration  option  (see The Tecla Con‐
				       figuration 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 direc‐
				       tion.

       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 paren‐
				       thesis, 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 parenthe‐
				       sis,  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 over‐
				       write 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 char‐
				       acter  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 pre‐
				       ceding  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  pre‐
				       ceding 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 cur‐
				       rent line, then enter insert mode.

       vi-change-to-bol		       From vi command mode, delete all	 char‐
				       acters	between	 the  cursor  and  the
				       beginning  of  the  line,  then	 enter
				       insert mode.

       vi-change-to-column	       From  vi command mode, delete the char‐
				       acters 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 paren‐
				       thesis, or next close parenthesis, then
				       enter vi insert mode.

       vi-forward-change-find	       From  vi command mode, delete the char‐
				       acters  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 char‐
				       acters  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 char‐
				       acters 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 char‐
				       acters 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 oper‐
				       ation.

       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  cer‐
       tain 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 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.

   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 initial  character	 input	mode,  editing
       functions  instead  being provided by the vi command mode.  The vi com‐
       mand mode is entered whenever the ESCAPE character is pressed, or when‐
       ever  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 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 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 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	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  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 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-\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 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
       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  pre‐
       ceded  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.

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.10			  20 May 2004			      tecla(5)
[top]

List of man pages available for SunOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net