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)