1 '\" te
   2 .\" Copyright (c) 2000, 2001, 2002, 2003, 2004 by Martin C. Shepherd. All Rights Reserved.
   3 .\" Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the
   4 .\" "Software"), to deal in the Software without restriction, including
   5 .\" without limitation the rights to use, copy, modify, merge, publish,
   6 .\" distribute, and/or sell copies of the Software, and to permit persons
   7 .\" to whom the Software is furnished to do so, provided that the above
   8 .\" copyright notice(s) and this permission notice appear in all copies of
   9 .\" the Software and that both the above copyright notice(s) and this
  10 .\" permission notice appear in supporting documentation.
  11 .\"
  12 .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  13 .\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  14 .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
  15 .\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
  16 .\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
  17 .\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
  18 .\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
  19 .\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
  20 .\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  21 .\"
  22 .\" Except as contained in this notice, the name of a copyright holder
  23 .\" shall not be used in advertising or otherwise to promote the sale, use
  24 .\" or other dealings in this Software without prior written authorization
  25 .\" of the copyright holder.
  26 .\" Portions Copyright (c) 2005, Sun Microsystems, Inc. All Rights Reserved.
  27 .TH TECLA 5 "April 9, 2016"
  28 .SH NAME
  29 tecla, teclarc \- User interface provided by the tecla library.
  30 .SH DESCRIPTION
  31 .LP
  32 This man page describes the command-line editing features that are available to
  33 users of programs that read keyboard input via the tecla library. Users of the
  34 \fBtcsh\fR shell will find the default key bindings very familiar. Users of the
  35 \fBbash\fR shell will also find it quite familiar, but with a few minor
  36 differences, most notably in how forward and backward searches through the list
  37 of historical commands are performed. There are two major editing modes, one
  38 with \fBemacs\fR-like key bindings and another with \fBvi\fR-like key bindings.
  39 By default \fBemacs\fR mode is enabled, but \fBvi\fR(1) mode can alternatively
  40 be selected via the user's configuration file. This file can also be used to
  41 change the bindings of individual keys to suit the user's preferences. By
  42 default, tab completion is provided. If the application hasn't reconfigured
  43 this to complete other types of symbols, then tab completion completes file
  44 names.
  45 .SS "Key Sequence Notation"
  46 .LP
  47 In the rest of this man page, and also in all tecla configuration files, key
  48 sequences are expressed as follows.
  49 .sp
  50 .ne 2
  51 .na
  52 \fB\fB^A\fR or \fBC-a\fR\fR
  53 .ad
  54 .RS 13n
  55 This is a 'CONTROL-A', entered by pressing the CONTROL key at the same time as
  56 the 'A' key.
  57 .RE
  58 
  59 .sp
  60 .ne 2
  61 .na
  62 \fB\eE\fR or \fBM-\fR
  63 .ad
  64 .RS 13n
  65 In key sequences, both of these notations can be entered either by pressing the
  66 ESCAPE key, then the following key, or by pressing the META key at the same
  67 time as the following key. Thus the key sequence \fBM-p\fR can be typed in two
  68 ways, by pressing the ESCAPE key, followed by pressing 'P', or by pressing the
  69 META key at the same time as 'P'.
  70 .RE
  71 
  72 .sp
  73 .ne 2
  74 .na
  75 \fBup\fR
  76 .ad
  77 .RS 13n
  78 This refers to the up-arrow key.
  79 .RE
  80 
  81 .sp
  82 .ne 2
  83 .na
  84 \fBdown\fR
  85 .ad
  86 .RS 13n
  87 This refers to the down-arrow key.
  88 .RE
  89 
  90 .sp
  91 .ne 2
  92 .na
  93 \fBleft\fR
  94 .ad
  95 .RS 13n
  96 This refers to the left-arrow key.
  97 .RE
  98 
  99 .sp
 100 .ne 2
 101 .na
 102 \fBright\fR
 103 .ad
 104 .RS 13n
 105 This refers to the right-arrow key.
 106 .RE
 107 
 108 .sp
 109 .ne 2
 110 .na
 111 \fBa\fR
 112 .ad
 113 .RS 13n
 114 This is just a normal 'A' key.
 115 .RE
 116 
 117 .SS "The Tecla Configuration File"
 118 .LP
 119 By default, tecla looks for a file called \fB\&.teclarc\fR in your home
 120 directory (ie. \fB~/.teclarc\fR). If it finds this file, it reads it,
 121 interpreting each line as defining a new key binding or an editing
 122 configuration option. Since the \fBemacs\fR key-bindings are installed by
 123 default, if you want to use the non-default \fBvi\fR editing mode, the most
 124 important item to go in this file is the following line:
 125 .sp
 126 .in +2
 127 .nf
 128 edit-mode vi
 129 .fi
 130 .in -2
 131 
 132 .sp
 133 .LP
 134 This will re-configure the default bindings for \fBvi\fR-mode. The complete set
 135 of arguments that this command accepts are:
 136 .sp
 137 .ne 2
 138 .na
 139 \fBvi\fR
 140 .ad
 141 .RS 9n
 142 Install key bindings like those of the \fBvi\fR editor.
 143 .RE
 144 
 145 .sp
 146 .ne 2
 147 .na
 148 \fBemacs\fR
 149 .ad
 150 .RS 9n
 151 Install key bindings like those of the \fBemacs\fR editor. This is the default.
 152 .RE
 153 
 154 .sp
 155 .ne 2
 156 .na
 157 \fBnone\fR
 158 .ad
 159 .RS 9n
 160 Use just the native line editing facilities provided by the terminal driver.
 161 .RE
 162 
 163 .sp
 164 .LP
 165 To prevent the terminal bell from being rung, such as when an unrecognized
 166 control-sequence is typed, place the following line in the configuration file:
 167 .sp
 168 .in +2
 169 .nf
 170 nobeep
 171 .fi
 172 .in -2
 173 
 174 .sp
 175 .LP
 176 An example of a key binding line in the configuration file is the following.
 177 .sp
 178 .in +2
 179 .nf
 180 bind M-[2~ insert-mode
 181 .fi
 182 .in -2
 183 
 184 .sp
 185 .LP
 186 On many keyboards, the above key sequence is generated when one presses the
 187 insert key, so with this key binding, one can toggle between the
 188 \fBemacs\fR-mode insert and overwrite modes by hitting one key. One could also
 189 do it by typing out the above sequence of characters one by one. As explained
 190 above, the \fBM-\fR part of this sequence can be typed either by pressing the
 191 ESCAPE key before the following key, or by pressing the META key at the same
 192 time as the following key. Thus if you had set the above key binding, and the
 193 insert key on your keyboard didn't generate the above key sequence, you could
 194 still type it in either of the following 2 ways.
 195 .RS +4
 196 .TP
 197 1.
 198 Hit the ESCAPE key momentarily, then press '[', then '2', then finally '~'.
 199 .RE
 200 .RS +4
 201 .TP
 202 2.
 203 Press the META key at the same time as pressing the '[' key, then press '2',
 204 then '~'.
 205 .RE
 206 .sp
 207 .LP
 208 If you set a key binding for a key sequence that is already bound to a
 209 function, the new binding overrides the old one. If in the new binding you omit
 210 the name of the new function to bind to the key sequence, the original binding
 211 becomes undefined.
 212 .sp
 213 .LP
 214 Starting with versions of \fBlibtecla\fR later than 1.3.3 it is now possible to
 215 bind key sequences that begin with a printable character. Previously key
 216 sequences were required to start with a CONTROL or META character.
 217 .sp
 218 .LP
 219 Note that the special keywords "up", "down", "left", and "right" refer to the
 220 arrow keys, and are thus not treated as key sequences. So, for example, to
 221 rebind the up and down arrow keys to use the history search mechanism instead
 222 of the simple history recall method, you could place the following in your
 223 configuration file:
 224 .sp
 225 .in +2
 226 .nf
 227 bind up history-search-backwards
 228 bind down history-search-backwards
 229 .fi
 230 .in -2
 231 
 232 .sp
 233 .LP
 234 To unbind an existing binding, you can do this with the bind command by
 235 omitting to name any action to rebind the key sequence to. For example, by not
 236 specifying an action function, the following command unbinds the default
 237 beginning-of-line action from the \fB^A\fR key sequence:
 238 .sp
 239 .in +2
 240 .nf
 241 bind ^A
 242 .fi
 243 .in -2
 244 
 245 .sp
 246 .LP
 247 If you create a \fB~/.teclarc\fR configuration file, but it appears to have no
 248 effect on the program, check the documentation of the program to see if the
 249 author chose a different name for this file.
 250 .SS "Filename and Tilde Completion"
 251 .LP
 252 With the default key bindings, pressing the TAB key (aka. \fB^I\fR) results in
 253 tecla attempting to complete the incomplete file name that precedes the cursor.
 254 Tecla searches backwards from the cursor, looking for the start of the file
 255 name, stopping when it hits either a space or the start of the line. If more
 256 than one file has the specified prefix, then tecla completes the file name up
 257 to the point at which the ambiguous matches start to differ, then lists the
 258 possible matches.
 259 .sp
 260 .LP
 261 In addition to literally written file names, tecla can complete files that
 262 start with \fB~/\fR and \fB~user/\fR expressions and that contain \fB$envvar\fR
 263 expressions. In particular, if you hit TAB within an incomplete \fB~user\fR,
 264 expression, tecla will attempt to complete the username, listing any ambiguous
 265 matches.
 266 .sp
 267 .LP
 268 The completion binding is implemented using the \fBcpl_complete_word()\fR
 269 function, which is also available separately to users of this library. See the
 270 \fBcpl_complete_word\fR(3TECLA) man page for more details.
 271 .SS "Filename Expansion"
 272 .LP
 273 With the default key bindings, pressing \fB^X*\fR causes tecla to expand the
 274 file name that precedes the cursor, replacing \fB~/\fR and \fB~user/\fR
 275 expressions with the corresponding home directories, and replacing
 276 \fB$envvar\fR expressions with the value of the specified environment variable,
 277 then if there are any wildcards, replacing the so far expanded file name with a
 278 space-separated list of the files which match the wild cards.
 279 .sp
 280 .LP
 281 The expansion binding is implemented using the \fBef_expand_file()\fR function.
 282 See the \fBef_expand_file\fR(3TECLA) man page for more details.
 283 .SS "Recalling Previously Typed Lines"
 284 .LP
 285 Every time that a new line is entered by the user, it is appended to a list of
 286 historical input lines maintained within the \fBGetLine\fR resource object. You
 287 can traverse up and down this list using the up and down arrow keys.
 288 Alternatively, you can do the same with the \fB^P\fR, and \fB^N\fR keys, and in
 289 \fBvi\fR command mode you can alternatively use the k and j characters. Thus
 290 pressing up-arrow once, replaces the current input line with the previously
 291 entered line. Pressing up-arrow again, replaces this with the line that was
 292 entered before it, etc.. Having gone back one or more lines into the history
 293 list, one can return to newer lines by pressing down-arrow one or more times.
 294 If you do this sufficient times, you will return to the original line that you
 295 were entering when you first hit up-arrow.
 296 .sp
 297 .LP
 298 Note that in \fBvi\fR mode, all of the history recall functions switch the
 299 library into command mode.
 300 .sp
 301 .LP
 302 In \fBemacs\fR mode the \fBM-p\fR and \fBM-n\fR keys work just like the
 303 \fB^P\fR and \fB^N\fR keys, except that they skip all but those historical
 304 lines which share the prefix that precedes the cursor. In \fBvi\fR command mode
 305 the upper case 'K' and 'J' characters do the same thing, except that the string
 306 that they search for includes the character under the cursor as well as what
 307 precedes it.
 308 .sp
 309 .LP
 310 Thus for example, suppose that you were in \fBemacs\fR mode, and you had just
 311 entered the following list of commands in the order shown:
 312 .sp
 313 .in +2
 314 .nf
 315 ls ~/tecla/
 316 cd ~/tecla
 317 ls -l getline.c
 318 \fBemacs\fR ~/tecla/getline.c
 319 .fi
 320 .in -2
 321 
 322 .sp
 323 .LP
 324 If you next typed:
 325 .sp
 326 .in +2
 327 .nf
 328 ls
 329 .fi
 330 .in -2
 331 
 332 .sp
 333 .LP
 334 and then hit \fBM-p\fR, then rather than returning the previously typed
 335 \fBemacs\fR line, which doesn't start with "ls", tecla would recall the "ls -l
 336 getline.c" line. Pressing \fBM-p\fR again would recall the "ls ~/tecla/" line.
 337 .sp
 338 .LP
 339 Note that if the string that you are searching for, contains any of the special
 340 characters, *, ?, or '[', then it is interpreted as a pattern to be matched.
 341 Thus, continuing with the above example, after typing in the list of commands
 342 shown, if you then typed:
 343 .sp
 344 .in +2
 345 .nf
 346 *tecla*
 347 .fi
 348 .in -2
 349 
 350 .sp
 351 .LP
 352 and hit \fBM-p\fR, then the "\fBemacs\fR ~/tecla/getline.c" line would be
 353 recalled first, since it contains the word tecla somewhere in the line,
 354 Similarly, hitting \fBM-p\fR again, would recall the "ls ~/tecla/" line, and
 355 hitting it once more would recall the "ls ~/tecla/" line. The pattern syntax is
 356 the same as that described for file name expansion, in the
 357 \fBef_expand_file\fR(3TECLA).
 358 .SS "History Files"
 359 .LP
 360 Authors of programs that use the tecla library have the option of saving
 361 historical command-lines in a file before exiting, and subsequently reading
 362 them back in from this file when the program is next started. There is no
 363 standard name for this file, since it makes sense for each application to use
 364 its own history file, so that commands from different applications don't get
 365 mixed up.
 366 .SS "International Character Sets"
 367 .LP
 368 Since \fBlibtecla\fR version 1.4.0, tecla has been 8-bit clean. This means that
 369 all 8-bit characters that are printable in the user's current locale are now
 370 displayed verbatim and included in the returned input line. Assuming that the
 371 calling program correctly contains a call like the following,
 372 .sp
 373 .in +2
 374 .nf
 375 setlocale(LC_CTYPE, "");
 376 .fi
 377 .in -2
 378 
 379 .sp
 380 .LP
 381 then the current locale is determined by the first of the environment variables
 382 \fBLC_CTYPE\fR, \fBLC_ALL\fR, and \fBLANG\fR, that is found to contain a valid
 383 locale name. If none of these variables are defined, or the program neglects to
 384 call \fBsetlocale\fR, then the default C locale is used, which is US 7-bit
 385 ASCII. On most unix-like platforms, you can get a list of valid locales by
 386 typing the command:
 387 .sp
 388 .in +2
 389 .nf
 390 locale -a
 391 .fi
 392 .in -2
 393 
 394 .sp
 395 .LP
 396 at the shell prompt.
 397 .SS "Meta Keys and Locales"
 398 .LP
 399 Beware that in most locales other than the default C locale, META characters
 400 become printable, and they are then no longer considered to match \fBM-c\fR
 401 style key bindings. This allows international characters to be entered with the
 402 compose key without unexpectedly triggering META key bindings. You can still
 403 invoke META bindings, since there are actually two ways to do this. For example
 404 the binding \fBM-c\fR can also be invoked by pressing the ESCAPE key
 405 momentarily, then pressing the c key, and this will work regardless of locale.
 406 Moreover, many modern terminal emulators, such as gnome's gnome-terminal's and
 407 KDE's konsole terminals, already generate escape pairs like this when you use
 408 the META key, rather than a real meta character, and other emulators usually
 409 have a way to request this behavior, so you can continue to use the META key on
 410 most systems.
 411 .sp
 412 .LP
 413 For example, although xterm terminal emulators generate real 8-bit meta
 414 characters by default when you use the META key, they can be configured to
 415 output the equivalent escape pair by setting their \fBEightBitInput\fR X
 416 resource to False. You can either do this by placing a line like the following
 417 in your \fB~/.Xdefaults\fR file,
 418 .sp
 419 .in +2
 420 .nf
 421 XTerm*EightBitInput: False
 422 .fi
 423 .in -2
 424 
 425 .sp
 426 .LP
 427 or by starting an \fBxterm\fR with an \fB-xrm\fR \&'*EightBitInput: False'
 428 command-line argument. In recent versions of xterm you can toggle this feature
 429 on and off with the 'Meta Sends Escape' option in the menu that is displayed
 430 when you press the left mouse button and the CONTROL key within an xterm
 431 window. In CDE, dtterms can be similarly coerced to generate escape pairs in
 432 place of meta characters, by setting the \fBDtterm*KshMode\fR resource to True.
 433 .SS "Entering International Characters"
 434 .LP
 435 If you don't have a keyboard that generates all of the international characters
 436 that you need, there is usually a compose key that will allow you to enter
 437 special characters, or a way to create one. For example, under X windows on
 438 unix-like systems, if your keyboard doesn't have a compose key, you can
 439 designate a redundant key to serve this purpose with the xmodmap command. For
 440 example, on many PC keyboards there is a microsoft-windows key, which is
 441 otherwise useless under Linux. On a laptop, for example, the \fBxev\fR program
 442 might report that pressing this key generates keycode 115. To turn this key
 443 into a COMPOSE  key, do the following:
 444 .sp
 445 .in +2
 446 .nf
 447 xmodmap -e 'keycode 115 = Multi_key'
 448 .fi
 449 .in -2
 450 
 451 .sp
 452 .LP
 453 Type this key followed by a " character to enter an 'I' with a umlaut over it.
 454 .SS "The Available Key Binding Functions"
 455 .LP
 456 The following is a list of the editing functions provided by the tecla library.
 457 The names in the leftmost column of the list can be used in configuration files
 458 to specify which function a given key or combination of keys should invoke.
 459 They are also used in the next two sections to list the default key bindings in
 460 \fBemacs\fR and \fBvi\fR modes.
 461 .sp
 462 .ne 2
 463 .na
 464 \fBuser-interrupt\fR
 465 .ad
 466 .RS 30n
 467 Send a SIGINT signal to the parent process.
 468 .RE
 469 
 470 .sp
 471 .ne 2
 472 .na
 473 \fBsuspend\fR
 474 .ad
 475 .RS 30n
 476 Suspend the parent process.
 477 .RE
 478 
 479 .sp
 480 .ne 2
 481 .na
 482 \fBstop-output\fR
 483 .ad
 484 .RS 30n
 485 Pause terminal output.
 486 .RE
 487 
 488 .sp
 489 .ne 2
 490 .na
 491 \fBstart-output\fR
 492 .ad
 493 .RS 30n
 494 Resume paused terminal output.
 495 .RE
 496 
 497 .sp
 498 .ne 2
 499 .na
 500 \fBliteral-next\fR
 501 .ad
 502 .RS 30n
 503 Arrange for the next character to be treated as a normal character. This allows
 504 control characters to be entered.
 505 .RE
 506 
 507 .sp
 508 .ne 2
 509 .na
 510 \fBcursor-right\fR
 511 .ad
 512 .RS 30n
 513 Move the cursor one character right.
 514 .RE
 515 
 516 .sp
 517 .ne 2
 518 .na
 519 \fBcursor-left\fR
 520 .ad
 521 .RS 30n
 522 Move the cursor one character left.
 523 .RE
 524 
 525 .sp
 526 .ne 2
 527 .na
 528 \fBinsert-mode\fR
 529 .ad
 530 .RS 30n
 531 Toggle between insert mode and overwrite mode.
 532 .RE
 533 
 534 .sp
 535 .ne 2
 536 .na
 537 \fBbeginning-of-line\fR
 538 .ad
 539 .RS 30n
 540 Move the cursor to the beginning of the line.
 541 .RE
 542 
 543 .sp
 544 .ne 2
 545 .na
 546 \fBend-of-line\fR
 547 .ad
 548 .RS 30n
 549 Move the cursor to the end of the line.
 550 .RE
 551 
 552 .sp
 553 .ne 2
 554 .na
 555 \fBdelete-line\fR
 556 .ad
 557 .RS 30n
 558 Delete the contents of the current line.
 559 .RE
 560 
 561 .sp
 562 .ne 2
 563 .na
 564 \fBkill-line\fR
 565 .ad
 566 .RS 30n
 567 Delete everything that follows the cursor.
 568 .RE
 569 
 570 .sp
 571 .ne 2
 572 .na
 573 \fBbackward-kill-line\fR
 574 .ad
 575 .RS 30n
 576 Delete all characters between the cursor and the start of the line.
 577 .RE
 578 
 579 .sp
 580 .ne 2
 581 .na
 582 \fBforward-word\fR
 583 .ad
 584 .RS 30n
 585 Move to the end of the word which follows the cursor.
 586 .RE
 587 
 588 .sp
 589 .ne 2
 590 .na
 591 \fBforward-to-word\fR
 592 .ad
 593 .RS 30n
 594 Move the cursor to the start of the word that follows the cursor.
 595 .RE
 596 
 597 .sp
 598 .ne 2
 599 .na
 600 \fBbackward-word\fR
 601 .ad
 602 .RS 30n
 603 Move to the start of the word which precedes the cursor.
 604 .RE
 605 
 606 .sp
 607 .ne 2
 608 .na
 609 \fBgoto-column\fR
 610 .ad
 611 .RS 30n
 612 Move the cursor to the 1-relative column in the line specified by any preceding
 613 digit-argument sequences (see Entering Repeat Counts below).
 614 .RE
 615 
 616 .sp
 617 .ne 2
 618 .na
 619 \fBfind-parenthesis\fR
 620 .ad
 621 .RS 30n
 622 If the cursor is currently over a parenthesis character, move it to the
 623 matching parenthesis character. If not over a parenthesis character move right
 624 to the next close parenthesis.
 625 .RE
 626 
 627 .sp
 628 .ne 2
 629 .na
 630 \fBforward-delete-char\fR
 631 .ad
 632 .RS 30n
 633 Delete the character under the cursor.
 634 .RE
 635 
 636 .sp
 637 .ne 2
 638 .na
 639 \fBbackward-delete-char\fR
 640 .ad
 641 .RS 30n
 642 Delete the character which precedes the cursor.
 643 .RE
 644 
 645 .sp
 646 .ne 2
 647 .na
 648 \fBlist-or-eof\fR
 649 .ad
 650 .RS 30n
 651 This is intended for binding to \fB^D\fR. When invoked when the cursor is
 652 within the line it displays all possible completions then redisplays the line
 653 unchanged. When invoked on an empty line, it signals end-of-input (EOF) to the
 654 caller of \fBgl_get_line()\fR.
 655 .RE
 656 
 657 .sp
 658 .ne 2
 659 .na
 660 \fBdel-char-or-list-or-eof\fR
 661 .ad
 662 .RS 30n
 663 This is intended for binding to \fB^D\fR. When invoked when the cursor is
 664 within the line it invokes forward-delete-char. When invoked at the end of the
 665 line it displays all possible completions then redisplays the line unchanged.
 666 When invoked on an empty line, it signals end-of-input (EOF) to the caller of
 667 \fBgl_get_line()\fR.
 668 .RE
 669 
 670 .sp
 671 .ne 2
 672 .na
 673 \fBforward-delete-word\fR
 674 .ad
 675 .RS 30n
 676 Delete the word which follows the cursor.
 677 .RE
 678 
 679 .sp
 680 .ne 2
 681 .na
 682 \fBbackward-delete-word\fR
 683 .ad
 684 .RS 30n
 685 Delete the word which precedes the cursor.
 686 .RE
 687 
 688 .sp
 689 .ne 2
 690 .na
 691 \fBupcase-word\fR
 692 .ad
 693 .RS 30n
 694 Convert all of the characters of the word which follows the cursor, to upper
 695 case.
 696 .RE
 697 
 698 .sp
 699 .ne 2
 700 .na
 701 \fBdowncase-word\fR
 702 .ad
 703 .RS 30n
 704 Convert all of the characters of the word which follows the cursor, to lower
 705 case.
 706 .RE
 707 
 708 .sp
 709 .ne 2
 710 .na
 711 \fBcapitalize-word\fR
 712 .ad
 713 .RS 30n
 714 Capitalize the word which follows the cursor.
 715 .RE
 716 
 717 .sp
 718 .ne 2
 719 .na
 720 \fBchange-case\fR
 721 .ad
 722 .RS 30n
 723 If the next character is upper case, toggle it to lower case and vice versa.
 724 .RE
 725 
 726 .sp
 727 .ne 2
 728 .na
 729 \fBredisplay\fR
 730 .ad
 731 .RS 30n
 732 Redisplay the line.
 733 .RE
 734 
 735 .sp
 736 .ne 2
 737 .na
 738 \fBclear-screen\fR
 739 .ad
 740 .RS 30n
 741 Clear the terminal, then redisplay the current line.
 742 .RE
 743 
 744 .sp
 745 .ne 2
 746 .na
 747 \fBtranspose-chars\fR
 748 .ad
 749 .RS 30n
 750 Swap the character under the cursor with the character just before the cursor.
 751 .RE
 752 
 753 .sp
 754 .ne 2
 755 .na
 756 \fBset-mark\fR
 757 .ad
 758 .RS 30n
 759 Set a mark at the position of the cursor.
 760 .RE
 761 
 762 .sp
 763 .ne 2
 764 .na
 765 \fBexchange-point-and-mark\fR
 766 .ad
 767 .RS 30n
 768 Move the cursor to the last mark that was set, and move the mark to where the
 769 cursor used to be.
 770 .RE
 771 
 772 .sp
 773 .ne 2
 774 .na
 775 \fBkill-region\fR
 776 .ad
 777 .RS 30n
 778 Delete the characters that lie between the last mark that was set, and the
 779 cursor.
 780 .RE
 781 
 782 .sp
 783 .ne 2
 784 .na
 785 \fBcopy-region-as-kill\fR
 786 .ad
 787 .RS 30n
 788 Copy the text between the mark and the cursor to the cut buffer, without
 789 deleting the original text.
 790 .RE
 791 
 792 .sp
 793 .ne 2
 794 .na
 795 \fByank\fR
 796 .ad
 797 .RS 30n
 798 Insert the text that was last deleted, just before the current position of the
 799 cursor.
 800 .RE
 801 
 802 .sp
 803 .ne 2
 804 .na
 805 \fBappend-yank\fR
 806 .ad
 807 .RS 30n
 808 Paste the current contents of the cut buffer, after the cursor.
 809 .RE
 810 
 811 .sp
 812 .ne 2
 813 .na
 814 \fBup-history\fR
 815 .ad
 816 .RS 30n
 817 Recall the next oldest line that was entered. Note that in \fBvi\fR mode you
 818 are left in command mode.
 819 .RE
 820 
 821 .sp
 822 .ne 2
 823 .na
 824 \fBdown-history\fR
 825 .ad
 826 .RS 30n
 827 Recall the next most recent line that was entered. If no history recall session
 828 is currently active, the next line from a previous recall session is recalled.
 829 Note that in vi mode you are left in command mode.
 830 .RE
 831 
 832 .sp
 833 .ne 2
 834 .na
 835 \fBhistory-search-backward\fR
 836 .ad
 837 .RS 30n
 838 Recall the next oldest line who's prefix matches the string which currently
 839 precedes the cursor (in \fBvi\fR command-mode the character under the cursor is
 840 also included in the search string). Note that in \fBvi\fR mode you are left in
 841 command mode.
 842 .RE
 843 
 844 .sp
 845 .ne 2
 846 .na
 847 \fBhistory-search-forward\fR
 848 .ad
 849 .RS 30n
 850 Recall the next newest line who's prefix matches the string which currently
 851 precedes the cursor (in \fBvi\fR command-mode the character under the cursor is
 852 also included in the search string). Note that in \fBvi\fR mode you are left in
 853 command mode.
 854 .RE
 855 
 856 .sp
 857 .ne 2
 858 .na
 859 \fBhistory-re-search-backward\fR
 860 .ad
 861 .RS 30n
 862 Recall the next oldest line who's prefix matches that established by the last
 863 invocation of either history-search-forward or history-search-backward.
 864 .RE
 865 
 866 .sp
 867 .ne 2
 868 .na
 869 \fBhistory-re-search-forward\fR
 870 .ad
 871 .RS 30n
 872 Recall the next newest line who's prefix matches that established by the last
 873 invocation of either history-search-forward or history-search-backward.
 874 .RE
 875 
 876 .sp
 877 .ne 2
 878 .na
 879 \fBcomplete-word\fR
 880 .ad
 881 .RS 30n
 882 Attempt to complete the incomplete word which precedes the cursor. Unless the
 883 host program has customized word completion, file name completion is attempted.
 884 In \fBvi\fR command mode the character under the cursor is also included in
 885 the word being completed, and you are left in \fBvi\fR insert mode.
 886 .RE
 887 
 888 .sp
 889 .ne 2
 890 .na
 891 \fBexpand-filename\fR
 892 .ad
 893 .RS 30n
 894 Within the command line, expand wild cards, tilde expressions and dollar
 895 expressions in the file name which immediately precedes the cursor. In \fBvi\fR
 896 command mode the character under the cursor is also included in the file name
 897 being expanded, and you are left in \fBvi\fR insert mode.
 898 .RE
 899 
 900 .sp
 901 .ne 2
 902 .na
 903 \fBlist-glob\fR
 904 .ad
 905 .RS 30n
 906 List any file names which match the wild-card, tilde and dollar expressions in
 907 the file name which immediately precedes the cursor, then redraw the input line
 908 unchanged.
 909 .RE
 910 
 911 .sp
 912 .ne 2
 913 .na
 914 \fBlist-history\fR
 915 .ad
 916 .RS 30n
 917 Display the contents of the history list for the current history group. If a
 918 repeat count of \fB> 1\fR is specified, only that many of the most recent lines
 919 are displayed. See the Entering Repeat Counts section.
 920 .RE
 921 
 922 .sp
 923 .ne 2
 924 .na
 925 \fBread-from-file\fR
 926 .ad
 927 .RS 30n
 928 Temporarily switch to reading input from the file who's name precedes the
 929 cursor.
 930 .RE
 931 
 932 .sp
 933 .ne 2
 934 .na
 935 \fBread-init-files\fR
 936 .ad
 937 .RS 30n
 938 Re-read \fBteclarc\fR configuration files.
 939 .RE
 940 
 941 .sp
 942 .ne 2
 943 .na
 944 \fBbeginning-of-history\fR
 945 .ad
 946 .RS 30n
 947 Move to the oldest line in the history list. Note that in \fBvi\fR mode you are
 948 left in command mode.
 949 .RE
 950 
 951 .sp
 952 .ne 2
 953 .na
 954 \fBend-of-history\fR
 955 .ad
 956 .RS 30n
 957 Move to the newest line in the history list (ie. the current line). Note that
 958 in \fBvi\fR mode this leaves you in command mode.
 959 .RE
 960 
 961 .sp
 962 .ne 2
 963 .na
 964 \fBdigit-argument\fR
 965 .ad
 966 .RS 30n
 967 Enter a repeat count for the next key binding function. For details, see the
 968 Entering Repeat Counts section.
 969 .RE
 970 
 971 .sp
 972 .ne 2
 973 .na
 974 \fBnewline\fR
 975 .ad
 976 .RS 30n
 977 Terminate and return the current contents of the line, after appending a
 978 newline character. The newline character is normally '\en', but will be the
 979 first character of the key sequence that invoked the newline action, if this
 980 happens to be a printable character. If the action was invoked by the '\en'
 981 newline character or the '\er' carriage return character, the line is appended
 982 to the history buffer.
 983 .RE
 984 
 985 .sp
 986 .ne 2
 987 .na
 988 \fBrepeat-history\fR
 989 .ad
 990 .RS 30n
 991 Return the line that is being edited, then arrange for the next most recent
 992 entry in the history buffer to be recalled when tecla is next called.
 993 Repeatedly invoking this action causes successive historical input lines to be
 994 re-executed. Note that this action is equivalent to the 'Operate' action in
 995 ksh.
 996 .RE
 997 
 998 .sp
 999 .ne 2
1000 .na
1001 \fBring-bell\fR
1002 .ad
1003 .RS 30n
1004 Ring the terminal bell, unless the bell has been silenced via the nobeep
1005 configuration option (see The Tecla Configuration File section).
1006 .RE
1007 
1008 .sp
1009 .ne 2
1010 .na
1011 \fBforward-copy-char\fR
1012 .ad
1013 .RS 30n
1014 Copy the next character into the cut buffer (NB. use repeat counts to copy more
1015 than one).
1016 .RE
1017 
1018 .sp
1019 .ne 2
1020 .na
1021 \fBbackward-copy-char\fR
1022 .ad
1023 .RS 30n
1024 Copy the previous character into the cut buffer.
1025 .RE
1026 
1027 .sp
1028 .ne 2
1029 .na
1030 \fBforward-copy-word\fR
1031 .ad
1032 .RS 30n
1033 Copy the next word into the cut buffer.
1034 .RE
1035 
1036 .sp
1037 .ne 2
1038 .na
1039 \fBbackward-copy-word\fR
1040 .ad
1041 .RS 30n
1042 Copy the previous word into the cut buffer.
1043 .RE
1044 
1045 .sp
1046 .ne 2
1047 .na
1048 \fBforward-find-char\fR
1049 .ad
1050 .RS 30n
1051 Move the cursor to the next occurrence of the next character that you type.
1052 .RE
1053 
1054 .sp
1055 .ne 2
1056 .na
1057 \fBbackward-find-char\fR
1058 .ad
1059 .RS 30n
1060 Move the cursor to the last occurrence of the next character that you type.
1061 .RE
1062 
1063 .sp
1064 .ne 2
1065 .na
1066 \fBforward-to-char\fR
1067 .ad
1068 .RS 30n
1069 Move the cursor to the character just before the next occurrence of the next
1070 character that the user types.
1071 .RE
1072 
1073 .sp
1074 .ne 2
1075 .na
1076 \fBbackward-to-char\fR
1077 .ad
1078 .RS 30n
1079 Move the cursor to the character just after the last occurrence before the
1080 cursor of the next character that the user types.
1081 .RE
1082 
1083 .sp
1084 .ne 2
1085 .na
1086 \fBrepeat-find-char\fR
1087 .ad
1088 .RS 30n
1089 Repeat the last backward-find-char, forward-find-char, backward-to-char or
1090 forward-to-char.
1091 .RE
1092 
1093 .sp
1094 .ne 2
1095 .na
1096 \fBinvert-refind-char\fR
1097 .ad
1098 .RS 30n
1099 Repeat the last backward-find-char, forward-find-char, backward-to-char, or
1100 forward-to-char in the opposite direction.
1101 .RE
1102 
1103 .sp
1104 .ne 2
1105 .na
1106 \fBdelete-to-column\fR
1107 .ad
1108 .RS 30n
1109 Delete the characters from the cursor up to the column that is specified by the
1110 repeat count.
1111 .RE
1112 
1113 .sp
1114 .ne 2
1115 .na
1116 \fBdelete-to-parenthesis\fR
1117 .ad
1118 .RS 30n
1119 Delete the characters from the cursor up to and including the matching
1120 parenthesis, or next close parenthesis.
1121 .RE
1122 
1123 .sp
1124 .ne 2
1125 .na
1126 \fBforward-delete-find\fR
1127 .ad
1128 .RS 30n
1129 Delete the characters from the cursor up to and including the following
1130 occurrence of the next character typed.
1131 .RE
1132 
1133 .sp
1134 .ne 2
1135 .na
1136 \fBbackward-delete-find\fR
1137 .ad
1138 .RS 30n
1139 Delete the characters from the cursor up to and including the preceding
1140 occurrence of the next character typed.
1141 .RE
1142 
1143 .sp
1144 .ne 2
1145 .na
1146 \fBforward-delete-to\fR
1147 .ad
1148 .RS 30n
1149 Delete the characters from the cursor up to, but not including, the following
1150 occurrence of the next character typed.
1151 .RE
1152 
1153 .sp
1154 .ne 2
1155 .na
1156 \fBbackward-delete-to\fR
1157 .ad
1158 .RS 30n
1159 Delete the characters from the cursor up to, but not including, the preceding
1160 occurrence of the next character typed.
1161 .RE
1162 
1163 .sp
1164 .ne 2
1165 .na
1166 \fBdelete-refind\fR
1167 .ad
1168 .RS 30n
1169 Repeat the last *-delete-find or *-delete-to action.
1170 .RE
1171 
1172 .sp
1173 .ne 2
1174 .na
1175 \fBdelete-invert-refind\fR
1176 .ad
1177 .RS 30n
1178 Repeat the last *-delete-find or *-delete-to action, in the opposite direction.
1179 .RE
1180 
1181 .sp
1182 .ne 2
1183 .na
1184 \fBcopy-to-column\fR
1185 .ad
1186 .RS 30n
1187 Copy the characters from the cursor up to the column that is specified by the
1188 repeat count, into the cut buffer.
1189 .RE
1190 
1191 .sp
1192 .ne 2
1193 .na
1194 \fBcopy-to-parenthesis\fR
1195 .ad
1196 .RS 30n
1197 Copy the characters from the cursor up to and including the matching
1198 parenthesis, or next close parenthesis, into the cut buffer.
1199 .RE
1200 
1201 .sp
1202 .ne 2
1203 .na
1204 \fBforward-copy-find\fR
1205 .ad
1206 .RS 30n
1207 Copy the characters from the cursor up to and including the following occurrence
1208 of the next character typed, into the cut buffer.
1209 .RE
1210 
1211 .sp
1212 .ne 2
1213 .na
1214 \fBbackward-copy-find\fR
1215 .ad
1216 .RS 30n
1217 Copy the characters from the cursor up to and including the preceding occurrence
1218 of the next character typed, into the cut buffer.
1219 .RE
1220 
1221 .sp
1222 .ne 2
1223 .na
1224 \fBforward-copy-to\fR
1225 .ad
1226 .RS 30n
1227 Copy the characters from the cursor up to, but not including, the following
1228 occurrence of the next character typed, into the cut buffer.
1229 .RE
1230 
1231 .sp
1232 .ne 2
1233 .na
1234 \fBbackward-copy-to\fR
1235 .ad
1236 .RS 30n
1237 Copy the characters from the cursor up to, but not including, the preceding
1238 occurrence of the next character typed, into the cut buffer.
1239 .RE
1240 
1241 .sp
1242 .ne 2
1243 .na
1244 \fBcopy-refind\fR
1245 .ad
1246 .RS 30n
1247 Repeat the last *-copy-find or *-copy-to action.
1248 .RE
1249 
1250 .sp
1251 .ne 2
1252 .na
1253 \fBcopy-invert-refind\fR
1254 .ad
1255 .RS 30n
1256 Repeat the last *-copy-find or *-copy-to action, in the opposite direction.
1257 .RE
1258 
1259 .sp
1260 .ne 2
1261 .na
1262 \fBvi-mode\fR
1263 .ad
1264 .RS 30n
1265 Switch to \fBvi\fR mode from emacs mode.
1266 .RE
1267 
1268 .sp
1269 .ne 2
1270 .na
1271 \fBemacs-mode\fR
1272 .ad
1273 .RS 30n
1274 Switch to \fBemacs\fR mode from \fBvi\fR mode.
1275 .RE
1276 
1277 .sp
1278 .ne 2
1279 .na
1280 \fBvi-insert\fR
1281 .ad
1282 .RS 30n
1283 From \fBvi\fR command mode, switch to insert mode.
1284 .RE
1285 
1286 .sp
1287 .ne 2
1288 .na
1289 \fBvi-overwrite\fR
1290 .ad
1291 .RS 30n
1292 From \fBvi\fR command mode, switch to overwrite mode.
1293 .RE
1294 
1295 .sp
1296 .ne 2
1297 .na
1298 \fBvi-insert-at-bol\fR
1299 .ad
1300 .RS 30n
1301 From \fBvi\fR command mode, move the cursor to the start of the line and switch
1302 to insert mode.
1303 .RE
1304 
1305 .sp
1306 .ne 2
1307 .na
1308 \fBvi-append-at-eol\fR
1309 .ad
1310 .RS 30n
1311 From \fBvi\fR command mode, move the cursor to the end of the line and switch
1312 to append mode.
1313 .RE
1314 
1315 .sp
1316 .ne 2
1317 .na
1318 \fBvi-append\fR
1319 .ad
1320 .RS 30n
1321 From \fBvi\fR command mode, move the cursor one position right, and switch to
1322 insert mode.
1323 .RE
1324 
1325 .sp
1326 .ne 2
1327 .na
1328 \fBvi-replace-char\fR
1329 .ad
1330 .RS 30n
1331 From \fBvi\fR command mode, replace the character under the cursor with the
1332 next character entered.
1333 .RE
1334 
1335 .sp
1336 .ne 2
1337 .na
1338 \fBvi-forward-change-char\fR
1339 .ad
1340 .RS 30n
1341 From \fBvi\fR command mode, delete the next character then enter insert mode.
1342 .RE
1343 
1344 .sp
1345 .ne 2
1346 .na
1347 \fBvi-backward-change-char\fR
1348 .ad
1349 .RS 30n
1350 From vi command mode, delete the preceding character then enter insert mode.
1351 .RE
1352 
1353 .sp
1354 .ne 2
1355 .na
1356 \fBvi-forward-change-word\fR
1357 .ad
1358 .RS 30n
1359 From \fBvi\fR command mode, delete the next word then enter insert mode.
1360 .RE
1361 
1362 .sp
1363 .ne 2
1364 .na
1365 \fBvi-backward-change-word\fR
1366 .ad
1367 .RS 30n
1368 From vi command mode, delete the preceding word then enter insert mode.
1369 .RE
1370 
1371 .sp
1372 .ne 2
1373 .na
1374 \fBvi-change-rest-of-line\fR
1375 .ad
1376 .RS 30n
1377 From \fBvi\fR command mode, delete from the cursor to the end of the line, then
1378 enter insert mode.
1379 .RE
1380 
1381 .sp
1382 .ne 2
1383 .na
1384 \fBvi-change-line\fR
1385 .ad
1386 .RS 30n
1387 From \fBvi\fR command mode, delete the current line, then enter insert mode.
1388 .RE
1389 
1390 .sp
1391 .ne 2
1392 .na
1393 \fBvi-change-to-bol\fR
1394 .ad
1395 .RS 30n
1396 From \fBvi\fR command mode, delete all characters between the cursor and the
1397 beginning of the line, then enter insert mode.
1398 .RE
1399 
1400 .sp
1401 .ne 2
1402 .na
1403 \fBvi-change-to-column\fR
1404 .ad
1405 .RS 30n
1406 From \fBvi\fR command mode, delete the characters from the cursor up to the
1407 column that is specified by the repeat count, then enter insert mode.
1408 .RE
1409 
1410 .sp
1411 .ne 2
1412 .na
1413 \fBvi-change-to-parenthesis\fR
1414 .ad
1415 .RS 30n
1416 Delete the characters from the cursor up to and including the matching
1417 parenthesis, or next close parenthesis, then enter \fBvi\fR insert mode.
1418 .RE
1419 
1420 .sp
1421 .ne 2
1422 .na
1423 \fBvi-forward-change-find\fR
1424 .ad
1425 .RS 30n
1426 From \fBvi\fR command mode, delete the characters from the cursor up to and
1427 including the following occurrence of the next character typed, then enter
1428 insert mode.
1429 .RE
1430 
1431 .sp
1432 .ne 2
1433 .na
1434 \fBvi-backward-change-find\fR
1435 .ad
1436 .RS 30n
1437 From vi command mode, delete the characters from the cursor up to and including
1438 the preceding occurrence of the next character typed, then enter insert mode.
1439 .RE
1440 
1441 .sp
1442 .ne 2
1443 .na
1444 \fBvi-forward-change-to\fR
1445 .ad
1446 .RS 30n
1447 From \fBvi\fR command mode, delete the characters from the cursor up to, but
1448 not including, the following occurrence of the next character typed, then enter
1449 insert mode.
1450 .RE
1451 
1452 .sp
1453 .ne 2
1454 .na
1455 \fBvi-backward-change-to\fR
1456 .ad
1457 .RS 30n
1458 From \fBvi\fR command mode, delete the characters from the cursor up to, but
1459 not including, the preceding occurrence of the next character typed, then enter
1460 insert mode.
1461 .RE
1462 
1463 .sp
1464 .ne 2
1465 .na
1466 \fBvi-change-refind\fR
1467 .ad
1468 .RS 30n
1469 Repeat the last vi-*-change-find or vi-*-change-to action.
1470 .RE
1471 
1472 .sp
1473 .ne 2
1474 .na
1475 \fBvi-change-invert-refind\fR
1476 .ad
1477 .RS 30n
1478 Repeat the last vi-*-change-find or vi-*-change-to action, in the opposite
1479 direction.
1480 .RE
1481 
1482 .sp
1483 .ne 2
1484 .na
1485 \fBvi-undo\fR
1486 .ad
1487 .RS 30n
1488 In \fBvi\fR mode, undo the last editing operation.
1489 .RE
1490 
1491 .sp
1492 .ne 2
1493 .na
1494 \fBvi-repeat-change\fR
1495 .ad
1496 .RS 30n
1497 In \fBvi\fR command mode, repeat the last command that modified the line.
1498 .RE
1499 
1500 .SS "Default Key Bindings In \fBemacs\fR Mode"
1501 .LP
1502 The following default key bindings, which can be overridden by the tecla
1503 configuration file, are designed to mimic most of the bindings of the unix
1504 \fBtcsh\fR shell, when it is in \fBemacs\fR editing mode.
1505 .sp
1506 .LP
1507 This is the default editing mode of the tecla library.
1508 .sp
1509 .LP
1510 Under UNIX the terminal driver sets a number of special keys for certain
1511 functions. The tecla library attempts to use the same key bindings to maintain
1512 consistency. The key sequences shown for the following 6 bindings are thus just
1513 examples of what they will probably be set to. If you have used the stty
1514 command to change these keys, then the default bindings should match.
1515 .sp
1516 .ne 2
1517 .na
1518 \fB\fB^C\fR\fR
1519 .ad
1520 .RS 6n
1521 user-interrupt
1522 .RE
1523 
1524 .sp
1525 .ne 2
1526 .na
1527 \fB^\e\fR
1528 .ad
1529 .RS 6n
1530 abort
1531 .RE
1532 
1533 .sp
1534 .ne 2
1535 .na
1536 \fB\fB^Z\fR\fR
1537 .ad
1538 .RS 6n
1539 suspend
1540 .RE
1541 
1542 .sp
1543 .ne 2
1544 .na
1545 \fB\fB^Q\fR\fR
1546 .ad
1547 .RS 6n
1548 start-output
1549 .RE
1550 
1551 .sp
1552 .ne 2
1553 .na
1554 \fB\fB^S\fR\fR
1555 .ad
1556 .RS 6n
1557 stop-output
1558 .RE
1559 
1560 .sp
1561 .ne 2
1562 .na
1563 \fB\fB^V\fR\fR
1564 .ad
1565 .RS 6n
1566 literal-next
1567 .RE
1568 
1569 .sp
1570 .LP
1571 The cursor keys are referred to by name, as follows. This is necessary because
1572 different types of terminals generate different key sequences when their cursor
1573 keys are pressed.
1574 .sp
1575 .ne 2
1576 .na
1577 \fBright\fR
1578 .ad
1579 .RS 9n
1580 cursor-right
1581 .RE
1582 
1583 .sp
1584 .ne 2
1585 .na
1586 \fBleft\fR
1587 .ad
1588 .RS 9n
1589 cursor-left
1590 .RE
1591 
1592 .sp
1593 .ne 2
1594 .na
1595 \fBup\fR
1596 .ad
1597 .RS 9n
1598 up-history
1599 .RE
1600 
1601 .sp
1602 .ne 2
1603 .na
1604 \fBdown\fR
1605 .ad
1606 .RS 9n
1607 down-history
1608 .RE
1609 
1610 .sp
1611 .LP
1612 The remaining bindings don't depend on the terminal settings.
1613 .sp
1614 .ne 2
1615 .na
1616 \fB\fB^F\fR\fR
1617 .ad
1618 .RS 21n
1619 cursor-right
1620 .RE
1621 
1622 .sp
1623 .ne 2
1624 .na
1625 \fB\fB^B\fR\fR
1626 .ad
1627 .RS 21n
1628 cursor-left
1629 .RE
1630 
1631 .sp
1632 .ne 2
1633 .na
1634 \fB\fBM-i\fR\fR
1635 .ad
1636 .RS 21n
1637 insert-mode
1638 .RE
1639 
1640 .sp
1641 .ne 2
1642 .na
1643 \fB\fB^A\fR\fR
1644 .ad
1645 .RS 21n
1646 beginning-of-line
1647 .RE
1648 
1649 .sp
1650 .ne 2
1651 .na
1652 \fB\fB^E\fR\fR
1653 .ad
1654 .RS 21n
1655 end-of-line
1656 .RE
1657 
1658 .sp
1659 .ne 2
1660 .na
1661 \fB\fB^U\fR\fR
1662 .ad
1663 .RS 21n
1664 delete-line
1665 .RE
1666 
1667 .sp
1668 .ne 2
1669 .na
1670 \fB\fB^K\fR\fR
1671 .ad
1672 .RS 21n
1673 kill-line
1674 .RE
1675 
1676 .sp
1677 .ne 2
1678 .na
1679 \fB\fBM-f\fR\fR
1680 .ad
1681 .RS 21n
1682 forward-word
1683 .RE
1684 
1685 .sp
1686 .ne 2
1687 .na
1688 \fB\fBM-b\fR\fR
1689 .ad
1690 .RS 21n
1691 backward-word
1692 .RE
1693 
1694 .sp
1695 .ne 2
1696 .na
1697 \fB\fB^D\fR\fR
1698 .ad
1699 .RS 21n
1700 del-char-or-list-or-eof
1701 .RE
1702 
1703 .sp
1704 .ne 2
1705 .na
1706 \fB\fB^H\fR\fR
1707 .ad
1708 .RS 21n
1709 backward-delete-char
1710 .RE
1711 
1712 .sp
1713 .ne 2
1714 .na
1715 \fB\fB^?\fR\fR
1716 .ad
1717 .RS 21n
1718 backward-delete-char
1719 .RE
1720 
1721 .sp
1722 .ne 2
1723 .na
1724 \fB\fBM-d\fR\fR
1725 .ad
1726 .RS 21n
1727 forward-delete-word
1728 .RE
1729 
1730 .sp
1731 .ne 2
1732 .na
1733 \fB\fBM-^H\fR\fR
1734 .ad
1735 .RS 21n
1736 backward-delete-word
1737 .RE
1738 
1739 .sp
1740 .ne 2
1741 .na
1742 \fB\fBM-^?\fR\fR
1743 .ad
1744 .RS 21n
1745 backward-delete-word
1746 .RE
1747 
1748 .sp
1749 .ne 2
1750 .na
1751 \fB\fBM-u\fR\fR
1752 .ad
1753 .RS 21n
1754 upcase-word
1755 .RE
1756 
1757 .sp
1758 .ne 2
1759 .na
1760 \fB\fBM-l\fR\fR
1761 .ad
1762 .RS 21n
1763 downcase-word
1764 .RE
1765 
1766 .sp
1767 .ne 2
1768 .na
1769 \fB\fBM-c\fR\fR
1770 .ad
1771 .RS 21n
1772 capitalize-word
1773 .RE
1774 
1775 .sp
1776 .ne 2
1777 .na
1778 \fB\fB^R\fR\fR
1779 .ad
1780 .RS 21n
1781 redisplay
1782 .RE
1783 
1784 .sp
1785 .ne 2
1786 .na
1787 \fB\fB^L\fR\fR
1788 .ad
1789 .RS 21n
1790 clear-screen
1791 .RE
1792 
1793 .sp
1794 .ne 2
1795 .na
1796 \fB\fB^T\fR\fR
1797 .ad
1798 .RS 21n
1799 transpose-chars
1800 .RE
1801 
1802 .sp
1803 .ne 2
1804 .na
1805 \fB\fB^@\fR\fR
1806 .ad
1807 .RS 21n
1808 set-mark
1809 .RE
1810 
1811 .sp
1812 .ne 2
1813 .na
1814 \fB\fB^X^X\fR\fR
1815 .ad
1816 .RS 21n
1817 exchange-point-and-mark
1818 .RE
1819 
1820 .sp
1821 .ne 2
1822 .na
1823 \fB\fB^W\fR\fR
1824 .ad
1825 .RS 21n
1826 kill-region
1827 .RE
1828 
1829 .sp
1830 .ne 2
1831 .na
1832 \fB\fBM-w\fR\fR
1833 .ad
1834 .RS 21n
1835 copy-region-as-kill
1836 .RE
1837 
1838 .sp
1839 .ne 2
1840 .na
1841 \fB\fB^Y\fR\fR
1842 .ad
1843 .RS 21n
1844 yank
1845 .RE
1846 
1847 .sp
1848 .ne 2
1849 .na
1850 \fB\fB^P\fR\fR
1851 .ad
1852 .RS 21n
1853 up-history
1854 .RE
1855 
1856 .sp
1857 .ne 2
1858 .na
1859 \fB\fB^N\fR\fR
1860 .ad
1861 .RS 21n
1862 down-history
1863 .RE
1864 
1865 .sp
1866 .ne 2
1867 .na
1868 \fB\fBM-p\fR\fR
1869 .ad
1870 .RS 21n
1871 history-search-backward
1872 .RE
1873 
1874 .sp
1875 .ne 2
1876 .na
1877 \fB\fBM-n\fR\fR
1878 .ad
1879 .RS 21n
1880 history-search-forward
1881 .RE
1882 
1883 .sp
1884 .ne 2
1885 .na
1886 \fB\fB^I\fR\fR
1887 .ad
1888 .RS 21n
1889 complete-word
1890 .RE
1891 
1892 .sp
1893 .ne 2
1894 .na
1895 \fB\fB^X*\fR\fR
1896 .ad
1897 .RS 21n
1898 expand-filename
1899 .RE
1900 
1901 .sp
1902 .ne 2
1903 .na
1904 \fB\fB^X^F\fR\fR
1905 .ad
1906 .RS 21n
1907 read-from-file
1908 .RE
1909 
1910 .sp
1911 .ne 2
1912 .na
1913 \fB\fB^X^R\fR\fR
1914 .ad
1915 .RS 21n
1916 read-init-files
1917 .RE
1918 
1919 .sp
1920 .ne 2
1921 .na
1922 \fB\fB^Xg\fR\fR
1923 .ad
1924 .RS 21n
1925 list-glob
1926 .RE
1927 
1928 .sp
1929 .ne 2
1930 .na
1931 \fB\fB^Xh\fR\fR
1932 .ad
1933 .RS 21n
1934 list-history
1935 .RE
1936 
1937 .sp
1938 .ne 2
1939 .na
1940 \fB\fBM-<\fR\fR
1941 .ad
1942 .RS 21n
1943 beginning-of-history
1944 .RE
1945 
1946 .sp
1947 .ne 2
1948 .na
1949 \fB\fBM->\fR\fR
1950 .ad
1951 .RS 21n
1952 end-of-history
1953 .RE
1954 
1955 .sp
1956 .ne 2
1957 .na
1958 \fB\fB\en\fR\fR
1959 .ad
1960 .RS 21n
1961 newline
1962 .RE
1963 
1964 .sp
1965 .ne 2
1966 .na
1967 \fB\fB\er\fR\fR
1968 .ad
1969 .RS 21n
1970 newline
1971 .RE
1972 
1973 .sp
1974 .ne 2
1975 .na
1976 \fB\fBM-o\fR\fR
1977 .ad
1978 .RS 21n
1979 repeat-history
1980 .RE
1981 
1982 .sp
1983 .ne 2
1984 .na
1985 \fB\fBM-^V\fR\fR
1986 .ad
1987 .RS 21n
1988 \fBvi\fR-mode
1989 .RE
1990 
1991 .sp
1992 .ne 2
1993 .na
1994 \fB\fBM-0, M-1, ... M-9\fR\fR
1995 .ad
1996 .RS 21n
1997 digit-argument (see below)
1998 .RE
1999 
2000 .sp
2001 .LP
2002 Note that \fB^I\fR is what the TAB key generates, and that \fB^@\fR can be
2003 generated not only by pressing the CONTROL key and the @ key simultaneously,
2004 but also by pressing the CONTROL key and the space bar at the same time.
2005 .SS "Default Key Bindings in \fBvi\fR Mode"
2006 .LP
2007 The following default key bindings are designed to mimic the \fBvi\fR style of
2008 editing as closely as possible. This means that very few editing functions are
2009 provided in the initial character input mode, editing functions instead being
2010 provided by the \fBvi\fR command mode. The \fBvi\fR command mode is entered
2011 whenever the ESCAPE character is pressed, or whenever a key sequence that
2012 starts with a meta character is entered. In addition to mimicing \fBvi\fR,
2013 \fBlibtecla\fR provides bindings for tab completion, wild-card expansion of
2014 file names, and historical line recall.
2015 .sp
2016 .LP
2017 To learn how to tell the tecla library to use \fBvi\fR mode instead of the
2018 default \fBemacs\fR editing mode, see the earlier section entitled The Tecla
2019 Configuration File.
2020 .sp
2021 .LP
2022 Under UNIX the terminal driver sets a number of special keys for certain
2023 functions. The tecla library attempts to use the same key bindings to maintain
2024 consistency, binding them both in input mode and in command mode. The key
2025 sequences shown for the following 6 bindings are thus just examples of what
2026 they will probably be set to. If you have used the \fBstty\fR command to change
2027 these keys, then the default bindings should match.
2028 .sp
2029 .ne 2
2030 .na
2031 \fB\fB^C\fR\fR
2032 .ad
2033 .RS 8n
2034 user-interrupt
2035 .RE
2036 
2037 .sp
2038 .ne 2
2039 .na
2040 \fB^\e\fR
2041 .ad
2042 .RS 8n
2043 abort
2044 .RE
2045 
2046 .sp
2047 .ne 2
2048 .na
2049 \fB\fB^Z\fR\fR
2050 .ad
2051 .RS 8n
2052 suspend
2053 .RE
2054 
2055 .sp
2056 .ne 2
2057 .na
2058 \fB\fB^Q\fR\fR
2059 .ad
2060 .RS 8n
2061 start-output
2062 .RE
2063 
2064 .sp
2065 .ne 2
2066 .na
2067 \fB\fB^S\fR\fR
2068 .ad
2069 .RS 8n
2070 stop-output
2071 .RE
2072 
2073 .sp
2074 .ne 2
2075 .na
2076 \fB\fB^V\fR\fR
2077 .ad
2078 .RS 8n
2079 literal-next
2080 .RE
2081 
2082 .sp
2083 .ne 2
2084 .na
2085 \fB\fBM-^C\fR\fR
2086 .ad
2087 .RS 8n
2088 user-interrupt
2089 .RE
2090 
2091 .sp
2092 .ne 2
2093 .na
2094 \fBM-^\e\fR
2095 .ad
2096 .RS 8n
2097 abort
2098 .RE
2099 
2100 .sp
2101 .ne 2
2102 .na
2103 \fB\fBM-^Z\fR\fR
2104 .ad
2105 .RS 8n
2106 suspend
2107 .RE
2108 
2109 .sp
2110 .ne 2
2111 .na
2112 \fB\fBM-^Q\fR\fR
2113 .ad
2114 .RS 8n
2115 start-output
2116 .RE
2117 
2118 .sp
2119 .ne 2
2120 .na
2121 \fB\fBM-^S\fR\fR
2122 .ad
2123 .RS 8n
2124 stop-output
2125 .RE
2126 
2127 .sp
2128 .LP
2129 Note that above, most of the bindings are defined twice, once as a raw control
2130 code like \fB^C\fR and then a second time as a META character like \fBM-^C\fR.
2131 The former is the binding for \fBvi\fR input mode, whereas the latter is the
2132 binding for \fBvi\fR command mode. Once in command mode all key sequences that
2133 the user types that they don't explicitly start with an ESCAPE or a META key,
2134 have their first key secretly converted to a META character before the key
2135 sequence is looked up in the key binding table. Thus, once in command mode,
2136 when you type the letter i, for example, the tecla library actually looks up
2137 the binding for \fBM-i\fR.
2138 .sp
2139 .LP
2140 The cursor keys are referred to by name, as follows. This is necessary because
2141 different types of terminals generate different key sequences when their cursor
2142 keys are pressed.
2143 .sp
2144 .ne 2
2145 .na
2146 \fB\fBright\fR\fR
2147 .ad
2148 .RS 9n
2149 cursor-right
2150 .RE
2151 
2152 .sp
2153 .ne 2
2154 .na
2155 \fB\fBleft\fR\fR
2156 .ad
2157 .RS 9n
2158 cursor-left
2159 .RE
2160 
2161 .sp
2162 .ne 2
2163 .na
2164 \fB\fBup\fR\fR
2165 .ad
2166 .RS 9n
2167 up-history
2168 .RE
2169 
2170 .sp
2171 .ne 2
2172 .na
2173 \fB\fBdown\fR\fR
2174 .ad
2175 .RS 9n
2176 down-history
2177 .RE
2178 
2179 .sp
2180 .LP
2181 The cursor keys normally generate a key sequence that start with an ESCAPE
2182 character, so beware that using the arrow keys will put you into command mode
2183 (if you aren't already in command mode).
2184 .sp
2185 .LP
2186 The following are the terminal-independent key bindings for \fBvi\fR input
2187 mode.
2188 .sp
2189 .ne 2
2190 .na
2191 \fB\fB^D\fR\fR
2192 .ad
2193 .RS 8n
2194 list-or-eof
2195 .RE
2196 
2197 .sp
2198 .ne 2
2199 .na
2200 \fB\fB^G\fR\fR
2201 .ad
2202 .RS 8n
2203 list-glob
2204 .RE
2205 
2206 .sp
2207 .ne 2
2208 .na
2209 \fB\fB^H\fR\fR
2210 .ad
2211 .RS 8n
2212 backward-delete-char
2213 .RE
2214 
2215 .sp
2216 .ne 2
2217 .na
2218 \fB\fB^I\fR\fR
2219 .ad
2220 .RS 8n
2221 complete-word
2222 .RE
2223 
2224 .sp
2225 .ne 2
2226 .na
2227 \fB\fB\er\fR\fR
2228 .ad
2229 .RS 8n
2230 newline
2231 .RE
2232 
2233 .sp
2234 .ne 2
2235 .na
2236 \fB\fB\en\fR\fR
2237 .ad
2238 .RS 8n
2239 newline
2240 .RE
2241 
2242 .sp
2243 .ne 2
2244 .na
2245 \fB\fB^L\fR\fR
2246 .ad
2247 .RS 8n
2248 clear-screen
2249 .RE
2250 
2251 .sp
2252 .ne 2
2253 .na
2254 \fB\fB^N\fR\fR
2255 .ad
2256 .RS 8n
2257 down-history
2258 .RE
2259 
2260 .sp
2261 .ne 2
2262 .na
2263 \fB\fB^P\fR\fR
2264 .ad
2265 .RS 8n
2266 up-history
2267 .RE
2268 
2269 .sp
2270 .ne 2
2271 .na
2272 \fB\fB^R\fR\fR
2273 .ad
2274 .RS 8n
2275 redisplay
2276 .RE
2277 
2278 .sp
2279 .ne 2
2280 .na
2281 \fB\fB^U\fR\fR
2282 .ad
2283 .RS 8n
2284 backward-kill-line
2285 .RE
2286 
2287 .sp
2288 .ne 2
2289 .na
2290 \fB\fB^W\fR\fR
2291 .ad
2292 .RS 8n
2293 backward-delete-word
2294 .RE
2295 
2296 .sp
2297 .ne 2
2298 .na
2299 \fB\fB^X*\fR\fR
2300 .ad
2301 .RS 8n
2302 expand-filename
2303 .RE
2304 
2305 .sp
2306 .ne 2
2307 .na
2308 \fB\fB^X^F\fR\fR
2309 .ad
2310 .RS 8n
2311 read-from-file
2312 .RE
2313 
2314 .sp
2315 .ne 2
2316 .na
2317 \fB\fB^X^R\fR\fR
2318 .ad
2319 .RS 8n
2320 read-init-files
2321 .RE
2322 
2323 .sp
2324 .ne 2
2325 .na
2326 \fB\fB^?\fR\fR
2327 .ad
2328 .RS 8n
2329 backward-delete-char
2330 .RE
2331 
2332 .sp
2333 .LP
2334 The following are the key bindings that are defined in \fBvi\fR command mode,
2335 this being specified by them all starting with a META character. As mentioned
2336 above, once in command mode the initial meta character is optional. For
2337 example, you might enter command mode by typing ESCAPE, and then press 'H'
2338 twice to move the cursor two positions to the left. Both 'H' characters get
2339 quietly converted to \fBM-h\fR before being compared to the key binding table,
2340 the first one because ESCAPE followed by a character is always converted to the
2341 equivalent META character, and the second because command mode was already
2342 active.
2343 .sp
2344 .ne 2
2345 .na
2346 \fBM-<space>\fR
2347 .ad
2348 .RS 21n
2349 cursor-right (META-space)
2350 .RE
2351 
2352 .sp
2353 .ne 2
2354 .na
2355 \fB\fBM-$\fR\fR
2356 .ad
2357 .RS 21n
2358 end-of-line
2359 .RE
2360 
2361 .sp
2362 .ne 2
2363 .na
2364 \fB\fBM-*\fR\fR
2365 .ad
2366 .RS 21n
2367 expand-filename
2368 .RE
2369 
2370 .sp
2371 .ne 2
2372 .na
2373 \fB\fBM-+\fR\fR
2374 .ad
2375 .RS 21n
2376 down-history
2377 .RE
2378 
2379 .sp
2380 .ne 2
2381 .na
2382 \fB\fBM--\fR\fR
2383 .ad
2384 .RS 21n
2385 up-history
2386 .RE
2387 
2388 .sp
2389 .ne 2
2390 .na
2391 \fB\fBM-<\fR\fR
2392 .ad
2393 .RS 21n
2394 beginning-of-history
2395 .RE
2396 
2397 .sp
2398 .ne 2
2399 .na
2400 \fB\fBM->\fR\fR
2401 .ad
2402 .RS 21n
2403 end-of-history
2404 .RE
2405 
2406 .sp
2407 .ne 2
2408 .na
2409 \fB\fBM-^\fR\fR
2410 .ad
2411 .RS 21n
2412 beginning-of-line
2413 .RE
2414 
2415 .sp
2416 .ne 2
2417 .na
2418 \fB\fBM-\fR\fR
2419 .ad
2420 .RS 21n
2421 repeat-find-char
2422 .RE
2423 
2424 .sp
2425 .ne 2
2426 .na
2427 \fB\fBM-,\fR\fR
2428 .ad
2429 .RS 21n
2430 invert-refind-char
2431 .RE
2432 
2433 .sp
2434 .ne 2
2435 .na
2436 \fB\fBM-|\fR\fR
2437 .ad
2438 .RS 21n
2439 goto-column
2440 .RE
2441 
2442 .sp
2443 .ne 2
2444 .na
2445 \fB\fBM-~\fR\fR
2446 .ad
2447 .RS 21n
2448 change-case
2449 .RE
2450 
2451 .sp
2452 .ne 2
2453 .na
2454 \fB\fBM-.\fR\fR
2455 .ad
2456 .RS 21n
2457 vi-repeat-change
2458 .RE
2459 
2460 .sp
2461 .ne 2
2462 .na
2463 \fB\fBM-%\fR\fR
2464 .ad
2465 .RS 21n
2466 find-parenthesis
2467 .RE
2468 
2469 .sp
2470 .ne 2
2471 .na
2472 \fB\fBM-a\fR\fR
2473 .ad
2474 .RS 21n
2475 vi-append
2476 .RE
2477 
2478 .sp
2479 .ne 2
2480 .na
2481 \fB\fBM-A\fR\fR
2482 .ad
2483 .RS 21n
2484 vi-append-at-eol
2485 .RE
2486 
2487 .sp
2488 .ne 2
2489 .na
2490 \fB\fBM-b\fR\fR
2491 .ad
2492 .RS 21n
2493 backward-word
2494 .RE
2495 
2496 .sp
2497 .ne 2
2498 .na
2499 \fB\fBM-B\fR\fR
2500 .ad
2501 .RS 21n
2502 backward-word
2503 .RE
2504 
2505 .sp
2506 .ne 2
2507 .na
2508 \fB\fBM-C\fR\fR
2509 .ad
2510 .RS 21n
2511 vi-change-rest-of-line
2512 .RE
2513 
2514 .sp
2515 .ne 2
2516 .na
2517 \fB\fBM-cb\fR\fR
2518 .ad
2519 .RS 21n
2520 vi-backward-change-word
2521 .RE
2522 
2523 .sp
2524 .ne 2
2525 .na
2526 \fB\fBM-cB\fR\fR
2527 .ad
2528 .RS 21n
2529 vi-backward-change-word
2530 .RE
2531 
2532 .sp
2533 .ne 2
2534 .na
2535 \fB\fBM-cc\fR\fR
2536 .ad
2537 .RS 21n
2538 vi-change-line
2539 .RE
2540 
2541 .sp
2542 .ne 2
2543 .na
2544 \fB\fBM-ce\fR\fR
2545 .ad
2546 .RS 21n
2547 vi-forward-change-word
2548 .RE
2549 
2550 .sp
2551 .ne 2
2552 .na
2553 \fB\fBM-cE\fR\fR
2554 .ad
2555 .RS 21n
2556 vi-forward-change-word
2557 .RE
2558 
2559 .sp
2560 .ne 2
2561 .na
2562 \fB\fBM-cw\fR\fR
2563 .ad
2564 .RS 21n
2565 vi-forward-change-word
2566 .RE
2567 
2568 .sp
2569 .ne 2
2570 .na
2571 \fB\fBM-cW\fR\fR
2572 .ad
2573 .RS 21n
2574 vi-forward-change-word
2575 .RE
2576 
2577 .sp
2578 .ne 2
2579 .na
2580 \fB\fBM-cF\fR\fR
2581 .ad
2582 .RS 21n
2583 vi-backward-change-find
2584 .RE
2585 
2586 .sp
2587 .ne 2
2588 .na
2589 \fB\fBM-cf\fR\fR
2590 .ad
2591 .RS 21n
2592 vi-forward-change-find
2593 .RE
2594 
2595 .sp
2596 .ne 2
2597 .na
2598 \fB\fBM-cT\fR\fR
2599 .ad
2600 .RS 21n
2601 vi-backward-change-to
2602 .RE
2603 
2604 .sp
2605 .ne 2
2606 .na
2607 \fB\fBM-ct\fR\fR
2608 .ad
2609 .RS 21n
2610 vi-forward-change-to
2611 .RE
2612 
2613 .sp
2614 .ne 2
2615 .na
2616 \fB\fBM-c;\fR\fR
2617 .ad
2618 .RS 21n
2619 vi-change-refind
2620 .RE
2621 
2622 .sp
2623 .ne 2
2624 .na
2625 \fB\fBM-c,\fR\fR
2626 .ad
2627 .RS 21n
2628 vi-change-invert-refind
2629 .RE
2630 
2631 .sp
2632 .ne 2
2633 .na
2634 \fB\fBM-ch\fR\fR
2635 .ad
2636 .RS 21n
2637 vi-backward-change-char
2638 .RE
2639 
2640 .sp
2641 .ne 2
2642 .na
2643 \fB\fBM-c^H\fR\fR
2644 .ad
2645 .RS 21n
2646 vi-backward-change-char
2647 .RE
2648 
2649 .sp
2650 .ne 2
2651 .na
2652 \fB\fBM-c^?\fR\fR
2653 .ad
2654 .RS 21n
2655 vi-backward-change-char
2656 .RE
2657 
2658 .sp
2659 .ne 2
2660 .na
2661 \fB\fBM-cl\fR\fR
2662 .ad
2663 .RS 21n
2664 vi-forward-change-char
2665 .RE
2666 
2667 .sp
2668 .ne 2
2669 .na
2670 \fBM-c<space>\fR
2671 .ad
2672 .RS 21n
2673 vi-forward-change-char (META-c-space)
2674 .RE
2675 
2676 .sp
2677 .ne 2
2678 .na
2679 \fB\fBM-c^\fR\fR
2680 .ad
2681 .RS 21n
2682 vi-change-to-bol
2683 .RE
2684 
2685 .sp
2686 .ne 2
2687 .na
2688 \fB\fBM-c0\fR\fR
2689 .ad
2690 .RS 21n
2691 vi-change-to-bol
2692 .RE
2693 
2694 .sp
2695 .ne 2
2696 .na
2697 \fB\fBM-c$\fR\fR
2698 .ad
2699 .RS 21n
2700 vi-change-rest-of-line
2701 .RE
2702 
2703 .sp
2704 .ne 2
2705 .na
2706 \fB\fBM-c|\fR\fR
2707 .ad
2708 .RS 21n
2709 vi-change-to-column
2710 .RE
2711 
2712 .sp
2713 .ne 2
2714 .na
2715 \fB\fBM-c%\fR\fR
2716 .ad
2717 .RS 21n
2718 vi-change-to-parenthesis
2719 .RE
2720 
2721 .sp
2722 .ne 2
2723 .na
2724 \fB\fBM-dh\fR\fR
2725 .ad
2726 .RS 21n
2727 backward-delete-char
2728 .RE
2729 
2730 .sp
2731 .ne 2
2732 .na
2733 \fB\fBM-d^H\fR\fR
2734 .ad
2735 .RS 21n
2736 backward-delete-char
2737 .RE
2738 
2739 .sp
2740 .ne 2
2741 .na
2742 \fB\fBM-d^?\fR\fR
2743 .ad
2744 .RS 21n
2745 backward-delete-char
2746 .RE
2747 
2748 .sp
2749 .ne 2
2750 .na
2751 \fB\fBM-dl\fR\fR
2752 .ad
2753 .RS 21n
2754 forward-delete-char
2755 .RE
2756 
2757 .sp
2758 .ne 2
2759 .na
2760 \fBM-d<space>\fR
2761 .ad
2762 .RS 21n
2763 forward-delete-char (META-d-space)
2764 .RE
2765 
2766 .sp
2767 .ne 2
2768 .na
2769 \fB\fBM-dd\fR\fR
2770 .ad
2771 .RS 21n
2772 delete-line
2773 .RE
2774 
2775 .sp
2776 .ne 2
2777 .na
2778 \fB\fBM-db\fR\fR
2779 .ad
2780 .RS 21n
2781 backward-delete-word
2782 .RE
2783 
2784 .sp
2785 .ne 2
2786 .na
2787 \fB\fBM-dB\fR\fR
2788 .ad
2789 .RS 21n
2790 backward-delete-word
2791 .RE
2792 
2793 .sp
2794 .ne 2
2795 .na
2796 \fB\fBM-de\fR\fR
2797 .ad
2798 .RS 21n
2799 forward-delete-word
2800 .RE
2801 
2802 .sp
2803 .ne 2
2804 .na
2805 \fB\fBM-dE\fR\fR
2806 .ad
2807 .RS 21n
2808 forward-delete-word
2809 .RE
2810 
2811 .sp
2812 .ne 2
2813 .na
2814 \fB\fBM-dw\fR\fR
2815 .ad
2816 .RS 21n
2817 forward-delete-word
2818 .RE
2819 
2820 .sp
2821 .ne 2
2822 .na
2823 \fB\fBM-dW\fR\fR
2824 .ad
2825 .RS 21n
2826 forward-delete-word
2827 .RE
2828 
2829 .sp
2830 .ne 2
2831 .na
2832 \fB\fBM-dF\fR\fR
2833 .ad
2834 .RS 21n
2835 backward-delete-find
2836 .RE
2837 
2838 .sp
2839 .ne 2
2840 .na
2841 \fB\fBM-df\fR\fR
2842 .ad
2843 .RS 21n
2844 forward-delete-find
2845 .RE
2846 
2847 .sp
2848 .ne 2
2849 .na
2850 \fB\fBM-dT\fR\fR
2851 .ad
2852 .RS 21n
2853 backward-delete-to
2854 .RE
2855 
2856 .sp
2857 .ne 2
2858 .na
2859 \fB\fBM-dt\fR\fR
2860 .ad
2861 .RS 21n
2862 forward-delete-to
2863 .RE
2864 
2865 .sp
2866 .ne 2
2867 .na
2868 \fB\fBM-d;\fR\fR
2869 .ad
2870 .RS 21n
2871 delete-refind
2872 .RE
2873 
2874 .sp
2875 .ne 2
2876 .na
2877 \fB\fBM-d,\fR\fR
2878 .ad
2879 .RS 21n
2880 delete-invert-refind
2881 .RE
2882 
2883 .sp
2884 .ne 2
2885 .na
2886 \fB\fBM-d^\fR\fR
2887 .ad
2888 .RS 21n
2889 backward-kill-line
2890 .RE
2891 
2892 .sp
2893 .ne 2
2894 .na
2895 \fB\fBM-d0\fR\fR
2896 .ad
2897 .RS 21n
2898 backward-kill-line
2899 .RE
2900 
2901 .sp
2902 .ne 2
2903 .na
2904 \fB\fBM-d$\fR\fR
2905 .ad
2906 .RS 21n
2907 kill-line
2908 .RE
2909 
2910 .sp
2911 .ne 2
2912 .na
2913 \fB\fBM-D\fR\fR
2914 .ad
2915 .RS 21n
2916 kill-line
2917 .RE
2918 
2919 .sp
2920 .ne 2
2921 .na
2922 \fB\fBM-d|\fR\fR
2923 .ad
2924 .RS 21n
2925 delete-to-column
2926 .RE
2927 
2928 .sp
2929 .ne 2
2930 .na
2931 \fB\fBM-d%\fR\fR
2932 .ad
2933 .RS 21n
2934 delete-to-parenthesis
2935 .RE
2936 
2937 .sp
2938 .ne 2
2939 .na
2940 \fB\fBM-e\fR\fR
2941 .ad
2942 .RS 21n
2943 forward-word
2944 .RE
2945 
2946 .sp
2947 .ne 2
2948 .na
2949 \fB\fBM-E\fR\fR
2950 .ad
2951 .RS 21n
2952 forward-word
2953 .RE
2954 
2955 .sp
2956 .ne 2
2957 .na
2958 \fB\fBM-f\fR\fR
2959 .ad
2960 .RS 21n
2961 forward-find-char
2962 .RE
2963 
2964 .sp
2965 .ne 2
2966 .na
2967 \fB\fBM-F\fR\fR
2968 .ad
2969 .RS 21n
2970 backward-find-char
2971 .RE
2972 
2973 .sp
2974 .ne 2
2975 .na
2976 \fB\fBM--\fR\fR
2977 .ad
2978 .RS 21n
2979 up-history
2980 .RE
2981 
2982 .sp
2983 .ne 2
2984 .na
2985 \fB\fBM-h\fR\fR
2986 .ad
2987 .RS 21n
2988 cursor-left
2989 .RE
2990 
2991 .sp
2992 .ne 2
2993 .na
2994 \fB\fBM-H\fR\fR
2995 .ad
2996 .RS 21n
2997 beginning-of-history
2998 .RE
2999 
3000 .sp
3001 .ne 2
3002 .na
3003 \fB\fBM-i\fR\fR
3004 .ad
3005 .RS 21n
3006 vi-insert
3007 .RE
3008 
3009 .sp
3010 .ne 2
3011 .na
3012 \fB\fBM-I\fR\fR
3013 .ad
3014 .RS 21n
3015 vi-insert-at-bol
3016 .RE
3017 
3018 .sp
3019 .ne 2
3020 .na
3021 \fB\fBM-j\fR\fR
3022 .ad
3023 .RS 21n
3024 down-history
3025 .RE
3026 
3027 .sp
3028 .ne 2
3029 .na
3030 \fB\fBM-J\fR\fR
3031 .ad
3032 .RS 21n
3033 history-search-forward
3034 .RE
3035 
3036 .sp
3037 .ne 2
3038 .na
3039 \fB\fBM-k\fR\fR
3040 .ad
3041 .RS 21n
3042 up-history
3043 .RE
3044 
3045 .sp
3046 .ne 2
3047 .na
3048 \fB\fBM-K\fR\fR
3049 .ad
3050 .RS 21n
3051 history-search-backward
3052 .RE
3053 
3054 .sp
3055 .ne 2
3056 .na
3057 \fB\fBM-l\fR\fR
3058 .ad
3059 .RS 21n
3060 cursor-right
3061 .RE
3062 
3063 .sp
3064 .ne 2
3065 .na
3066 \fB\fBM-L\fR\fR
3067 .ad
3068 .RS 21n
3069 end-of-history
3070 .RE
3071 
3072 .sp
3073 .ne 2
3074 .na
3075 \fB\fBM-n\fR\fR
3076 .ad
3077 .RS 21n
3078 history-re-search-forward
3079 .RE
3080 
3081 .sp
3082 .ne 2
3083 .na
3084 \fB\fBM-N\fR\fR
3085 .ad
3086 .RS 21n
3087 history-re-search-backward
3088 .RE
3089 
3090 .sp
3091 .ne 2
3092 .na
3093 \fB\fBM-p\fR\fR
3094 .ad
3095 .RS 21n
3096 append-yank
3097 .RE
3098 
3099 .sp
3100 .ne 2
3101 .na
3102 \fB\fBM-P\fR\fR
3103 .ad
3104 .RS 21n
3105 yank
3106 .RE
3107 
3108 .sp
3109 .ne 2
3110 .na
3111 \fB\fBM-r\fR\fR
3112 .ad
3113 .RS 21n
3114 vi-replace-char
3115 .RE
3116 
3117 .sp
3118 .ne 2
3119 .na
3120 \fB\fBM-R\fR\fR
3121 .ad
3122 .RS 21n
3123 vi-overwrite
3124 .RE
3125 
3126 .sp
3127 .ne 2
3128 .na
3129 \fB\fBM-s\fR\fR
3130 .ad
3131 .RS 21n
3132 vi-forward-change-char
3133 .RE
3134 
3135 .sp
3136 .ne 2
3137 .na
3138 \fB\fBM-S\fR\fR
3139 .ad
3140 .RS 21n
3141 vi-change-line
3142 .RE
3143 
3144 .sp
3145 .ne 2
3146 .na
3147 \fB\fBM-t\fR\fR
3148 .ad
3149 .RS 21n
3150 forward-to-char
3151 .RE
3152 
3153 .sp
3154 .ne 2
3155 .na
3156 \fB\fBM-T\fR\fR
3157 .ad
3158 .RS 21n
3159 backward-to-char
3160 .RE
3161 
3162 .sp
3163 .ne 2
3164 .na
3165 \fB\fBM-u\fR\fR
3166 .ad
3167 .RS 21n
3168 vi-undo
3169 .RE
3170 
3171 .sp
3172 .ne 2
3173 .na
3174 \fB\fBM-w\fR\fR
3175 .ad
3176 .RS 21n
3177 forward-to-word
3178 .RE
3179 
3180 .sp
3181 .ne 2
3182 .na
3183 \fB\fBM-W\fR\fR
3184 .ad
3185 .RS 21n
3186 forward-to-word
3187 .RE
3188 
3189 .sp
3190 .ne 2
3191 .na
3192 \fB\fBM-x\fR\fR
3193 .ad
3194 .RS 21n
3195 forward-delete-char
3196 .RE
3197 
3198 .sp
3199 .ne 2
3200 .na
3201 \fB\fBM-X\fR\fR
3202 .ad
3203 .RS 21n
3204 backward-delete-char
3205 .RE
3206 
3207 .sp
3208 .ne 2
3209 .na
3210 \fB\fBM-yh\fR\fR
3211 .ad
3212 .RS 21n
3213 backward-copy-char
3214 .RE
3215 
3216 .sp
3217 .ne 2
3218 .na
3219 \fB\fBM-y^H\fR\fR
3220 .ad
3221 .RS 21n
3222 backward-copy-char
3223 .RE
3224 
3225 .sp
3226 .ne 2
3227 .na
3228 \fB\fBM-y^?\fR\fR
3229 .ad
3230 .RS 21n
3231 backward-copy-char
3232 .RE
3233 
3234 .sp
3235 .ne 2
3236 .na
3237 \fB\fBM-yl\fR\fR
3238 .ad
3239 .RS 21n
3240 forward-copy-char
3241 .RE
3242 
3243 .sp
3244 .ne 2
3245 .na
3246 \fBM-y<space>\fR
3247 .ad
3248 .RS 21n
3249 forward-copy-char (META-y-space)
3250 .RE
3251 
3252 .sp
3253 .ne 2
3254 .na
3255 \fB\fBM-ye\fR\fR
3256 .ad
3257 .RS 21n
3258 forward-copy-word
3259 .RE
3260 
3261 .sp
3262 .ne 2
3263 .na
3264 \fB\fBM-yE\fR\fR
3265 .ad
3266 .RS 21n
3267 forward-copy-word
3268 .RE
3269 
3270 .sp
3271 .ne 2
3272 .na
3273 \fB\fBM-yw\fR\fR
3274 .ad
3275 .RS 21n
3276 forward-copy-word
3277 .RE
3278 
3279 .sp
3280 .ne 2
3281 .na
3282 \fB\fBM-yW\fR\fR
3283 .ad
3284 .RS 21n
3285 forward-copy-word
3286 .RE
3287 
3288 .sp
3289 .ne 2
3290 .na
3291 \fB\fBM-yb\fR\fR
3292 .ad
3293 .RS 21n
3294 backward-copy-word
3295 .RE
3296 
3297 .sp
3298 .ne 2
3299 .na
3300 \fB\fBM-yB\fR\fR
3301 .ad
3302 .RS 21n
3303 backward-copy-word
3304 .RE
3305 
3306 .sp
3307 .ne 2
3308 .na
3309 \fB\fBM-yf\fR\fR
3310 .ad
3311 .RS 21n
3312 forward-copy-find
3313 .RE
3314 
3315 .sp
3316 .ne 2
3317 .na
3318 \fB\fBM-yF\fR\fR
3319 .ad
3320 .RS 21n
3321 backward-copy-find
3322 .RE
3323 
3324 .sp
3325 .ne 2
3326 .na
3327 \fB\fBM-yt\fR\fR
3328 .ad
3329 .RS 21n
3330 forward-copy-to
3331 .RE
3332 
3333 .sp
3334 .ne 2
3335 .na
3336 \fB\fBM-yT\fR\fR
3337 .ad
3338 .RS 21n
3339 backward-copy-to
3340 .RE
3341 
3342 .sp
3343 .ne 2
3344 .na
3345 \fB\fBM-y;\fR\fR
3346 .ad
3347 .RS 21n
3348 copy-refind
3349 .RE
3350 
3351 .sp
3352 .ne 2
3353 .na
3354 \fB\fBM-y,\fR\fR
3355 .ad
3356 .RS 21n
3357 copy-invert-refind
3358 .RE
3359 
3360 .sp
3361 .ne 2
3362 .na
3363 \fB\fBM-y^\fR\fR
3364 .ad
3365 .RS 21n
3366 copy-to-bol
3367 .RE
3368 
3369 .sp
3370 .ne 2
3371 .na
3372 \fB\fBM-y0\fR\fR
3373 .ad
3374 .RS 21n
3375 copy-to-bol
3376 .RE
3377 
3378 .sp
3379 .ne 2
3380 .na
3381 \fB\fBM-y$\fR\fR
3382 .ad
3383 .RS 21n
3384 copy-rest-of-line
3385 .RE
3386 
3387 .sp
3388 .ne 2
3389 .na
3390 \fB\fBM-yy\fR\fR
3391 .ad
3392 .RS 21n
3393 copy-line
3394 .RE
3395 
3396 .sp
3397 .ne 2
3398 .na
3399 \fB\fBM-Y\fR\fR
3400 .ad
3401 .RS 21n
3402 copy-line
3403 .RE
3404 
3405 .sp
3406 .ne 2
3407 .na
3408 \fB\fBM-y|\fR\fR
3409 .ad
3410 .RS 21n
3411 copy-to-column
3412 .RE
3413 
3414 .sp
3415 .ne 2
3416 .na
3417 \fB\fBM-y%\fR\fR
3418 .ad
3419 .RS 21n
3420 copy-to-parenthesis
3421 .RE
3422 
3423 .sp
3424 .ne 2
3425 .na
3426 \fB\fBM-^E\fR\fR
3427 .ad
3428 .RS 21n
3429 emacs-mode
3430 .RE
3431 
3432 .sp
3433 .ne 2
3434 .na
3435 \fB\fBM-^H\fR\fR
3436 .ad
3437 .RS 21n
3438 cursor-left
3439 .RE
3440 
3441 .sp
3442 .ne 2
3443 .na
3444 \fB\fBM-^?\fR\fR
3445 .ad
3446 .RS 21n
3447 cursor-left
3448 .RE
3449 
3450 .sp
3451 .ne 2
3452 .na
3453 \fB\fBM-^L\fR\fR
3454 .ad
3455 .RS 21n
3456 clear-screen
3457 .RE
3458 
3459 .sp
3460 .ne 2
3461 .na
3462 \fB\fBM-^N\fR\fR
3463 .ad
3464 .RS 21n
3465 down-history
3466 .RE
3467 
3468 .sp
3469 .ne 2
3470 .na
3471 \fB\fBM-^P\fR\fR
3472 .ad
3473 .RS 21n
3474 up-history
3475 .RE
3476 
3477 .sp
3478 .ne 2
3479 .na
3480 \fB\fBM-^R\fR\fR
3481 .ad
3482 .RS 21n
3483 redisplay
3484 .RE
3485 
3486 .sp
3487 .ne 2
3488 .na
3489 \fB\fBM-^D\fR\fR
3490 .ad
3491 .RS 21n
3492 list-or-eof
3493 .RE
3494 
3495 .sp
3496 .ne 2
3497 .na
3498 \fB\fBM-^I\fR\fR
3499 .ad
3500 .RS 21n
3501 complete-word
3502 .RE
3503 
3504 .sp
3505 .ne 2
3506 .na
3507 \fBM-\er\fR
3508 .ad
3509 .RS 21n
3510 newline
3511 .RE
3512 
3513 .sp
3514 .ne 2
3515 .na
3516 \fB\fBM-\en\fR\fR
3517 .ad
3518 .RS 21n
3519 newline
3520 .RE
3521 
3522 .sp
3523 .ne 2
3524 .na
3525 \fB\fBM-^X^R\fR\fR
3526 .ad
3527 .RS 21n
3528 read-init-files
3529 .RE
3530 
3531 .sp
3532 .ne 2
3533 .na
3534 \fB\fBM-^Xh\fR\fR
3535 .ad
3536 .RS 21n
3537 list-history
3538 .RE
3539 
3540 .sp
3541 .ne 2
3542 .na
3543 \fB\fBM-0, M-1, ... M-9\fR\fR
3544 .ad
3545 .RS 21n
3546 digit-argument (see below)
3547 .RE
3548 
3549 .sp
3550 .LP
3551 Note that \fB^I\fR is what the TAB key generates.
3552 .SS "Entering Repeat Counts"
3553 .LP
3554 Many of the key binding functions described previously, take an optional count,
3555 typed in before the target key sequence. This is interpreted as a repeat count
3556 by most bindings. A notable exception is the goto-column binding, which
3557 interprets the count as a column number.
3558 .sp
3559 .LP
3560 By default you can specify this count argument by pressing the META key while
3561 typing in the numeric count. This relies on the digit-argument action being
3562 bound to 'META-0', 'META-1' etc. Once any one of these bindings has been
3563 activated, you can optionally take your finger off the META key to type in the
3564 rest of the number, since every numeric digit thereafter is treated as part of
3565 the number, unless it is preceded by the literal-next binding. As soon as a
3566 non-digit, or literal digit key is pressed the repeat count is terminated and
3567 either causes the just typed character to be added to the line that many times,
3568 or causes the next key binding function to be given that argument.
3569 .sp
3570 .LP
3571 For example, in \fBemacs\fR mode, typing:
3572 .sp
3573 .in +2
3574 .nf
3575 M-12a
3576 .fi
3577 .in -2
3578 
3579 .sp
3580 .LP
3581 causes the letter 'a' to be added to the line 12 times, whereas
3582 .sp
3583 .in +2
3584 .nf
3585 M-4M-c
3586 .fi
3587 .in -2
3588 
3589 .sp
3590 .LP
3591 Capitalizes the next 4 words.
3592 .sp
3593 .LP
3594 In \fBvi\fR command mode the meta modifier is automatically added to all
3595 characters typed in, so to enter a count in \fBvi\fR command-mode, just
3596 involves typing in the number, just as it does in the \fBvi\fR editor itself.
3597 So for example, in vi command mode, typing:
3598 .sp
3599 .in +2
3600 .nf
3601 4w2x
3602 .fi
3603 .in -2
3604 
3605 .sp
3606 .LP
3607 moves the cursor four words to the right, then deletes two characters.
3608 .sp
3609 .LP
3610 You can also bind digit-argument to other key sequences. If these end in a
3611 numeric digit, that digit gets appended to the current repeat count. If it
3612 doesn't end in a numeric digit, a new repeat count is started with a value of
3613 zero, and can be completed by typing in the number, after letting go of the key
3614 which triggered the digit-argument action.
3615 .SH FILES
3616 .ne 2
3617 .na
3618 \fB\fB/usr/lib/libtecla.so\fR\fR
3619 .ad
3620 .RS 27n
3621 The tecla library
3622 .RE
3623 
3624 .sp
3625 .ne 2
3626 .na
3627 \fB\fB/usr/include/libtecla.h\fR\fR
3628 .ad
3629 .RS 27n
3630 The tecla header file
3631 .RE
3632 
3633 .sp
3634 .ne 2
3635 .na
3636 \fB\fB~/.teclarc\fR\fR
3637 .ad
3638 .RS 27n
3639 The personal tecla customization file
3640 .RE
3641 
3642 .SH ATTRIBUTES
3643 .LP
3644 See \fBattributes\fR(5) for descriptions of the following attributes:
3645 .sp
3646 
3647 .sp
3648 .TS
3649 box;
3650 c | c
3651 l | l .
3652 ATTRIBUTE TYPE  ATTRIBUTE VALUE
3653 _
3654 Interface Stability     Evolving
3655 .TE
3656 
3657 .SH SEE ALSO
3658 .LP
3659 \fBvi\fR(1), \fBcpl_complete_word\fR(3TECLA), \fBef_expand_file\fR(3TECLA),
3660 \fBgl_get_line\fR(3TECLA), \fBgl_io_mode\fR(3TECLA), \fBlibtecla\fR(3LIB),
3661 \fBpca_lookup_file\fR(3TECLA), \fBattributes\fR(5)