1 2 3 4LESS(1) USER COMMANDS LESS(1) 5 6 7 8NAME 9 less - opposite of more 10 11SYNOPSIS 12 less -? 13 less -V 14 less [-[+]aBcCdeEfgGiImMnNqQrsSuUVwX] 15 [-b _b_u_f_s] [-h _l_i_n_e_s] [-j _l_i_n_e] [-k _k_e_y_f_i_l_e] 16 [-{oO} _l_o_g_f_i_l_e] [-p _p_a_t_t_e_r_n] [-P _p_r_o_m_p_t] [-t _t_a_g] 17 [-T _t_a_g_s_f_i_l_e] [-x _t_a_b] [-y _l_i_n_e_s] [-[z] _l_i_n_e_s] 18 [+[+]_c_m_d] [_f_i_l_e_n_a_m_e]... 19 20 21DESCRIPTION 22 _L_e_s_s is a program similar to _m_o_r_e (1), but which allows 23 backward movement in the file as well as forward movement. 24 Also, _l_e_s_s does not have to read the entire input file 25 before starting, so with large input files it starts up fas- 26 ter than text editors like _v_i (1). _L_e_s_s uses termcap (or 27 terminfo on some systems), so it can run on a variety of 28 terminals. There is even limited support for hardcopy ter- 29 minals. (On a hardcopy terminal, lines which should be 30 printed at the top of the screen are prefixed with a caret.) 31 32 Commands are based on both _m_o_r_e and _v_i. Commands may be pre- 33 ceded by a decimal number, called N in the descriptions 34 below. The number is used by some commands, as indicated. 35 36 37COMMANDS 38 In the following descriptions, ^X means control-X. ESC 39 stands for the ESCAPE key; for example ESC-v means the two 40 character sequence "ESCAPE", then "v". 41 42 h or H 43 Help: display a summary of these commands. If you for- 44 get all the other commands, remember this one. 45 46 SPACE or ^V or f or ^F 47 Scroll forward N lines, default one window (see option 48 -z below). If N is more than the screen size, only the 49 final screenful is displayed. Warning: some systems 50 use ^V as a special literalization character. 51 52 z Like SPACE, but if N is specified, it becomes the new 53 window size. 54 55 RETURN or ^N or e or ^E or j or ^J 56 Scroll forward N lines, default 1. The entire N lines 57 are displayed, even if N is more than the screen size. 58 59 60 61 62 63 1 64 65 66 67 68 69 70LESS(1) USER COMMANDS LESS(1) 71 72 73 74 d or ^D 75 Scroll forward N lines, default one half of the screen 76 size. If N is specified, it becomes the new default 77 for subsequent d and u commands. 78 79 b or ^B or ESC-v 80 Scroll backward N lines, default one window (see option 81 -z below). If N is more than the screen size, only the 82 final screenful is displayed. 83 84 w Like ESC-v, but if N is specified, it becomes the new 85 window size. 86 87 y or ^Y or ^P or k or ^K 88 Scroll backward N lines, default 1. The entire N lines 89 are displayed, even if N is more than the screen size. 90 Warning: some systems use ^Y as a special job control 91 character. 92 93 u or ^U 94 Scroll backward N lines, default one half of the screen 95 size. If N is specified, it becomes the new default 96 for subsequent d and u commands. 97 98 r or ^R or ^L 99 Repaint the screen. 100 101 R Repaint the screen, discarding any buffered input. 102 Useful if the file is changing while it is being 103 viewed. 104 105 F Scroll forward, and keep trying to read when the end of 106 file is reached. Normally this command would be used 107 when already at the end of the file. It is a way to 108 monitor the tail of a file which is growing while it is 109 being viewed. (The behavior is similar to the "tail 110 -f" command.) 111 112 g or < or ESC-< 113 Go to line N in the file, default 1 (beginning of 114 file). (Warning: this may be slow if N is large.) 115 116 G or > or ESC-> 117 Go to line N in the file, default the end of the file. 118 (Warning: this may be slow if N is large, or if N is 119 not specified and standard input, rather than a file, 120 is being read.) 121 122 p or % 123 Go to a position N percent into the file. N should be 124 between 0 and 100. (This works if standard input is 125 being read, but only if _l_e_s_s has already read to the 126 127 128 129 2 130 131 132 133 134 135 136LESS(1) USER COMMANDS LESS(1) 137 138 139 140 end of the file. It is always fast, but not always 141 useful.) 142 143 { If a left curly bracket appears in the top line 144 displayed on the screen, the { command will go to the 145 matching right curly bracket. The matching right curly 146 bracket is positioned on the bottom line of the screen. 147 If there is more than one left curly bracket on the top 148 line, a number N may be used to specify the N-th 149 bracket on the line. 150 151 } If a right curly bracket appears in the bottom line 152 displayed on the screen, the } command will go to the 153 matching left curly bracket. The matching left curly 154 bracket is positioned on the top line of the screen. 155 If there is more than one right curly bracket on the 156 top line, a number N may be used to specify the N-th 157 bracket on the line. 158 159 ( Like {, but applies to parentheses rather than curly 160 brackets. 161 162 ) Like }, but applies to parentheses rather than curly 163 brackets. 164 165 [ Like {, but applies to square brackets rather than 166 curly brackets. 167 168 ] Like }, but applies to square brackets rather than 169 curly brackets. 170 171 ESC-^F 172 Followed by two characters, acts like {, but uses the 173 two characters as open and close brackets, respec- 174 tively. For example, "ESC ^F < >" could be used to go 175 forward to the > which matches the < in the top 176 displayed line. 177 178 ESC-^B 179 Followed by two characters, acts like }, but uses the 180 two characters as open and close brackets, respec- 181 tively. For example, "ESC ^B < >" could be used to go 182 backward to the < which matches the > in the bottom 183 displayed line. 184 185 m Followed by any lowercase letter, marks the current 186 position with that letter. 187 188 ' (Single quote.) Followed by any lowercase letter, 189 returns to the position which was previously marked 190 with that letter. Followed by another single quote, 191 returns to the position at which the last "large" 192 193 194 195 3 196 197 198 199 200 201 202LESS(1) USER COMMANDS LESS(1) 203 204 205 206 movement command was executed. Followed by a ^ or $, 207 jumps to the beginning or end of the file respectively. 208 Marks are preserved when a new file is examined, so the 209 ' command can be used to switch between input files. 210 211 ^X^X Same as single quote. 212 213 /pattern 214 Search forward in the file for the N-th line containing 215 the pattern. N defaults to 1. The pattern is a regu- 216 lar expression, as recognized by _e_d. The search starts 217 at the second line displayed (but see the -a and -j 218 options, which change this). 219 220 Certain characters are special if entered at the begin- 221 ning of the pattern; they modify the type of search 222 rather than become part of the pattern: 223 224 ! Search for lines which do NOT match the pattern. 225 226 * Search multiple files. That is, if the search 227 reaches the end of the current file without find- 228 ing a match, the search continues in the next file 229 in the command line list. 230 231 @ Begin the search at the first line of the first 232 file in the command line list, regardless of what 233 is currently displayed on the screen or the set- 234 tings of the -a or -j options. 235 236 ?pattern 237 Search backward in the file for the N-th line contain- 238 ing the pattern. The search starts at the line immedi- 239 ately before the top line displayed. 240 241 Certain characters are special as in the / command: 242 243 ! Search for lines which do NOT match the pattern. 244 245 * Search multiple files. That is, if the search 246 reaches the beginning of the current file without 247 finding a match, the search continues in the pre- 248 vious file in the command line list. 249 250 @ Begin the search at the last line of the last file 251 in the command line list, regardless of what is 252 currently displayed on the screen or the settings 253 of the -a or -j options. 254 255 ESC-/pattern 256 Same as "/*". 257 258 259 260 261 4 262 263 264 265 266 267 268LESS(1) USER COMMANDS LESS(1) 269 270 271 272 ESC-?pattern 273 Same as "?*". 274 275 n Repeat previous search, for N-th line containing the 276 last pattern. If the previous search was modified by 277 !, the search is made for the N-th line NOT containing 278 the pattern. If the previous search was modified by *, 279 the search continues in the next (or previous) file if 280 not satisfied in the current file. There is no effect 281 if the previous search was modified by @. 282 283 N Repeat previous search, but in the reverse direction. 284 285 ESC-n 286 Repeat previous search, but crossing file boundaries. 287 The effect is as if the previous search were modified 288 by *. 289 290 ESC-N 291 Repeat previous search, but in the reverse direction 292 and crossing file boundaries. 293 294 ESC-u 295 Undo search highlighting. Turn off highlighting of 296 strings matching the current search pattern. If 297 highlighting is already off because of a previous ESC-u 298 command, turn highlighting back on. Any search command 299 will also turn highlighting back on. (Highlighting can 300 also be disabled by toggling the -G flag; in that case 301 search commands do not turn highlighting back on.) 302 303 :e [filename] 304 Examine a new file. If the filename is missing, the 305 "current" file (see the :n and :p commands below) from 306 the list of files in the command line is re-examined. 307 A percent sign (%) in the filename is replaced by the 308 name of the current file. A pound sign (#) is replaced 309 by the name of the previously examined file. The 310 filename is inserted into the command line list of 311 files so that it can be seen by subsequent :n and :p 312 commands. If the filename consists of several files, 313 they are all inserted into the list of files and the 314 first one is examined. 315 316 ^X^V or E 317 Same as :e. Warning: some systems use ^V as a special 318 literalization character. 319 320 :n Examine the next file (from the list of files given in 321 the command line). If a number N is specified, the N- 322 th next file is examined. 323 324 325 326 327 5 328 329 330 331 332 333 334LESS(1) USER COMMANDS LESS(1) 335 336 337 338 :p Examine the previous file in the command line list. If 339 a number N is specified, the N-th previous file is 340 examined. 341 342 :x Examine the first file in the command line list. If a 343 number N is specified, the N-th file in the list is 344 examined. 345 346 = or ^G or :f 347 Prints some information about the file being viewed, 348 including its name and the line number and byte offset 349 of the bottom line being displayed. If possible, it 350 also prints the length of the file, the number of lines 351 in the file and the percent of the file above the last 352 displayed line. 353 354 - Followed by one of the command line option letters (see 355 below), this will change the setting of that option and 356 print a message describing the new setting. If the 357 option letter has a numeric value (such as -b or -h), 358 or a string value (such as -P or -t), a new value may 359 be entered after the option letter. If no new value is 360 entered, a message describing the current setting is 361 printed and nothing is changed. 362 363 -+ Followed by one of the command line option letters (see 364 below), this will reset the option to its default set- 365 ting and print a message describing the new setting. 366 (The "-+_X" command does the same thing as "-+_X" on the 367 command line.) This does not work for string-valued 368 options. 369 370 -- Followed by one of the command line option letters (see 371 below), this will reset the option to the "opposite" of 372 its default setting and print a message describing the 373 new setting. (The "--_X" command does the same thing as 374 "-_X" on the command line.) This does not work for 375 numeric or string-valued options. 376 377 _ (Underscore.) Followed by one of the command line 378 option letters (see below), this will print a message 379 describing the current setting of that option. The 380 setting of the option is not changed. 381 382 +cmd Causes the specified cmd to be executed each time a new 383 file is examined. For example, +G causes _l_e_s_s to ini- 384 tially display each file starting at the end rather 385 than the beginning. 386 387 V Prints the version number of _l_e_s_s being run. 388 389 390 391 392 393 6 394 395 396 397 398 399 400LESS(1) USER COMMANDS LESS(1) 401 402 403 404 q or :q or :Q or ZZ 405 Exits _l_e_s_s. 406 407 The following three commands may or may not be valid, 408 depending on your particular installation. 409 410 v Invokes an editor to edit the current file being 411 viewed. The editor is taken from the environment vari- 412 able VISUAL if defined, or EDITOR if VISUAL is not 413 defined, or defaults to "vi" if neither VISUAL nor EDI- 414 TOR is defined. See also the discussion of LESSEDIT 415 under the section on PROMPTS below. 416 417 ! shell-command 418 Invokes a shell to run the shell-command given. A per- 419 cent sign (%) in the command is replaced by the name of 420 the current file. A pound sign (#) is replaced by the 421 name of the previously examined file. "!!" repeats the 422 last shell command. "!" with no shell command simply 423 invokes a shell. In all cases, the shell is taken from 424 the environment variable SHELL, or defaults to "sh". 425 426 | <m> shell-command 427 <m> represents any mark letter. Pipes a section of the 428 input file to the given shell command. The section of 429 the file to be piped is between the first line on the 430 current screen and the position marked by the letter. 431 <m> may also be ^ or $ to indicate beginning or end of 432 file respectively. If <m> is . or newline, the current 433 screen is piped. 434 435OPTIONS 436 Command line options are described below. Most options may 437 be changed while _l_e_s_s is running, via the "-" command. 438 439 Options are also taken from the environment variable "LESS". 440 For example, to avoid typing "less -options ..." each time 441 _l_e_s_s is invoked, you might tell _c_s_h: 442 443 setenv LESS "-options" 444 445 or if you use _s_h: 446 447 LESS="-options"; export LESS 448 449 The environment variable is parsed before the command line, 450 so command line options override the LESS environment vari- 451 able. If an option appears in the LESS variable, it can be 452 reset to its default on the command line by beginning the 453 command line option with "-+". 454 455 A dollar sign ($) may be used to signal the end of an option 456 457 458 459 7 460 461 462 463 464 465 466LESS(1) USER COMMANDS LESS(1) 467 468 469 470 string. This is important only for options like -P which 471 take a following string. 472 473 -? This option displays a summary of the commands accepted 474 by _l_e_s_s (the same as the h command). If this option is 475 given, all other options are ignored, and _l_e_s_s exits 476 after the help screen is viewed. (Depending on how 477 your shell interprets the question mark, it may be 478 necessary to quote the question mark, thus: "-\?".) 479 480 -a Causes searches to start after the last line displayed 481 on the screen, thus skipping all lines displayed on the 482 screen. By default, searches start at the second line 483 on the screen (or after the last found line; see the -j 484 option). 485 486 -b_n Specifies the number of buffers _l_e_s_s will use for each 487 file. Buffers are 1K, and by default 10 buffers are 488 used for each file (except if the file is a pipe; see 489 the -B option). The number _n specifies a different 490 number of buffers to use. 491 492 -B By default, when data is read from a pipe, buffers are 493 allocated automatically as needed. If a large amount 494 of data is read from the pipe, this can cause a large 495 amount of memory to be allocated. The -B option dis- 496 ables this automatic allocation of buffers for pipes, 497 so that only the number of buffers specified by the -b 498 option are used. Warning: use of -B can result in 499 erroneous display, since only the most recently viewed 500 part of the file is kept in memory; any earlier data is 501 lost. 502 503 -c Causes full screen repaints to be painted from the top 504 line down. By default, full screen repaints are done 505 by scrolling from the bottom of the screen. 506 507 -C The -C option is like -c, but the screen is cleared 508 before it is repainted. 509 510 -d The -d option suppresses the error message normally 511 displayed if the terminal is dumb; that is, lacks some 512 important capability, such as the ability to clear the 513 screen or scroll backward. The -d option does not oth- 514 erwise change the behavior of _l_e_s_s on a dumb terminal). 515 516 -Dx_c_o_l_o_r 517 [MS-DOS only] Sets the color of the text displayed. x 518 is a single character which selects the type of text 519 whose color is being set: n=normal, s=standout, d=bold, 520 u=underlined, k=blink. _c_o_l_o_r is a pair of numbers 521 separated by a period. The first number selects the 522 523 524 525 8 526 527 528 529 530 531 532LESS(1) USER COMMANDS LESS(1) 533 534 535 536 foreground color and the second selects the background 537 color of the text. A single number _N is the same as 538 _N._0. 539 540 -e Causes _l_e_s_s to automatically exit the second time it 541 reaches end-of-file. By default, the only way to exit 542 _l_e_s_s is via the "q" command. 543 544 -E Causes _l_e_s_s to automatically exit the first time it 545 reaches end-of-file. 546 547 -f Forces non-regular files to be opened. (A non-regular 548 file is a directory or a device special file.) Also 549 suppresses the warning message when a binary file is 550 opened. By default, _l_e_s_s will refuse to open non- 551 regular files. 552 553 -g Normally, _l_e_s_s will highlight ALL strings which match 554 the last search command. The -g flag changes this 555 behavior to highlight only the particular string which 556 was found by the last search command. This can cause 557 _l_e_s_s to run somewhat faster than the default. 558 559 -G The -G flag suppresses all highlighting of strings 560 found by search commands. 561 562 -h_n Specifies a maximum number of lines to scroll backward. 563 If it is necessary to scroll backward more than _n 564 lines, the screen is repainted in a forward direction 565 instead. (If the terminal does not have the ability to 566 scroll backward, -h0 is implied.) 567 568 -i Causes searches to ignore case; that is, uppercase and 569 lowercase are considered identical. This option is 570 ignored if any uppercase letters appear in the search 571 pattern; in other words, if a pattern contains upper- 572 case letters, then that search does not ignore case. 573 574 -I Like -i, but searches ignore case even if the pattern 575 contains uppercase letters. 576 577 -j_n Specifies a line on the screen where the "target" line 578 is to be positioned. A target line is the object of a 579 text search, tag search, jump to a line number, jump to 580 a file percentage, or jump to a marked position. The 581 screen line is specified by a number: the top line on 582 the screen is 1, the next is 2, and so on. The number 583 may be negative to specify a line relative to the bot- 584 tom of the screen: the bottom line on the screen is -1, 585 the second to the bottom is -2, and so on. If the -j 586 option is used, searches begin at the line immediately 587 after the target line. For example, if "-j4" is used, 588 589 590 591 9 592 593 594 595 596 597 598LESS(1) USER COMMANDS LESS(1) 599 600 601 602 the target line is the fourth line on the screen, so 603 searches begin at the fifth line on the screen. 604 605 -k_f_i_l_e_n_a_m_e 606 Causes _l_e_s_s to open and interpret the named file as a 607 _l_e_s_s_k_e_y (1) file. Multiple -k options may be speci- 608 fied. If a file called .less exists in the user's home 609 directory, this file is also used as a _l_e_s_s_k_e_y file. 610 611 -m Causes _l_e_s_s to prompt verbosely (like _m_o_r_e), with the 612 percent into the file. By default, _l_e_s_s prompts with a 613 colon. 614 615 -M Causes _l_e_s_s to prompt even more verbosely than _m_o_r_e. 616 617 -n Suppresses line numbers. The default (to use line 618 numbers) may cause _l_e_s_s to run more slowly in some 619 cases, especially with a very large input file. 620 Suppressing line numbers with the -n flag will avoid 621 this problem. Using line numbers means: the line 622 number will be displayed in the verbose prompt and in 623 the = command, and the v command will pass the current 624 line number to the editor (see also the discussion of 625 LESSEDIT in PROMPTS below). 626 627 -N Causes a line number to be displayed at the beginning 628 of each line in the display. 629 630 -o_f_i_l_e_n_a_m_e 631 Causes _l_e_s_s to copy its input to the named file as it 632 is being viewed. This applies only when the input file 633 is a pipe, not an ordinary file. If the file already 634 exists, _l_e_s_s will ask for confirmation before overwrit- 635 ing it. 636 637 -O_f_i_l_e_n_a_m_e 638 The -O option is like -o, but it will overwrite an 639 existing file without asking for confirmation. 640 641 If no log file has been specified, the -o and -O 642 options can be used from within _l_e_s_s to specify a log 643 file. Without a file name, they will simply report the 644 name of the log file. The "s" command is equivalent to 645 specifying -o from within _l_e_s_s. 646 647 -p_p_a_t_t_e_r_n 648 The -p option on the command line is equivalent to 649 specifying +/_p_a_t_t_e_r_n; that is, it tells _l_e_s_s to start 650 at the first occurrence of _p_a_t_t_e_r_n in the file. 651 652 -P_p_r_o_m_p_t 653 Provides a way to tailor the three prompt styles to 654 655 656 657 10 658 659 660 661 662 663 664LESS(1) USER COMMANDS LESS(1) 665 666 667 668 your own preference. This option would normally be put 669 in the LESS environment variable, rather than being 670 typed in with each _l_e_s_s command. Such an option must 671 either be the last option in the LESS variable, or be 672 terminated by a dollar sign. -P followed by a string 673 changes the default (short) prompt to that string. -Pm 674 changes the medium (-m) prompt to the string, and -PM 675 changes the long (-M) prompt. Also, -P= changes the 676 message printed by the = command to the given string. 677 All prompt strings consist of a sequence of letters and 678 special escape sequences. See the section on PROMPTS 679 for more details. 680 681 -q Causes moderately "quiet" operation: the terminal bell 682 is not rung if an attempt is made to scroll past the 683 end of the file or before the beginning of the file. 684 If the terminal has a "visual bell", it is used 685 instead. The bell will be rung on certain other 686 errors, such as typing an invalid character. The 687 default is to ring the terminal bell in all such cases. 688 689 -Q Causes totally "quiet" operation: the terminal bell is 690 never rung. 691 692 -r Causes "raw" control characters to be displayed. The 693 default is to display control characters using the 694 caret notation; for example, a control-A (octal 001) is 695 displayed as "^A". Warning: when the -r flag is used, 696 _l_e_s_s cannot keep track of the actual appearance of the 697 screen (since this depends on how the screen responds 698 to each type of control character). Thus, various 699 display problems may result, such as long lines being 700 split in the wrong place. 701 702 -s Causes consecutive blank lines to be squeezed into a 703 single blank line. This is useful when viewing _n_r_o_f_f 704 output. 705 706 -S Causes lines longer than the screen width to be chopped 707 rather than folded. That is, the remainder of a long 708 line is simply discarded. The default is to fold long 709 lines; that is, display the remainder on the next line. 710 711 -t_t_a_g 712 The -t option, followed immediately by a TAG, will edit 713 the file containing that tag. For this to work, there 714 must be a file called "tags" in the current directory, 715 which was previously built by the _c_t_a_g_s (1) command. 716 This option may also be specified from within _l_e_s_s 717 (using the - command) as a way of examining a new file. 718 The command ":t" is equivalent to specifying -t from 719 within _l_e_s_s. 720 721 722 723 11 724 725 726 727 728 729 730LESS(1) USER COMMANDS LESS(1) 731 732 733 734 -T_t_a_g_s_f_i_l_e 735 Specifies a tags file to be used instead of "tags". 736 737 -u Causes backspaces and carriage returns to be treated as 738 printable characters; that is, they are sent to the 739 terminal when they appear in the input. 740 741 -U Causes backspaces and carriage returns to be treated as 742 control characters; that is, they are handled as speci- 743 fied by the -r option. 744 745 By default, if neither -u nor -U is given, backspaces 746 which appear adjacent to an underscore character are 747 treated specially: the underlined text is displayed 748 using the terminal's hardware underlining capability. 749 Also, backspaces which appear between two identical 750 characters are treated specially: the overstruck text 751 is printed using the terminal's hardware boldface capa- 752 bility. Other backspaces are deleted, along with the 753 preceding character. Carriage returns immediately fol- 754 lowed by a newline are deleted. Other carriage returns 755 are handled as specified by the -r option. Text which 756 is overstruck or underlined can be searched for if nei- 757 ther -u nor -U is in effect. 758 759 -V Displays the version number of _l_e_s_s. 760 761 -w Causes blank lines to be used to represent lines past 762 the end of the file. By default, a tilde character (~) 763 is used. 764 765 -x_n Sets tab stops every _n positions. The default for _n is 766 8. 767 768 -X Disables sending the termcap initialization and deini- 769 tialization strings to the terminal. This is sometimes 770 desirable if the deinitialization string does something 771 unnecessary, like clearing the screen. 772 773 -y_n Specifies a maximum number of lines to scroll forward. 774 If it is necessary to scroll forward more than _n lines, 775 the screen is repainted instead. The -c or -C option 776 may be used to repaint from the top of the screen if 777 desired. By default, any forward movement causes 778 scrolling. 779 780 -[z]_n 781 Changes the default scrolling window size to _n lines. 782 The default is one screenful. The z and w commands can 783 also be used to change the window size. The "z" may be 784 omitted for compatibility with _m_o_r_e. If the number _n is 785 negative, it indicates _n lines less than the current 786 787 788 789 12 790 791 792 793 794 795 796LESS(1) USER COMMANDS LESS(1) 797 798 799 800 screen size. For example, if the screen is 24 lines, 801 -_z-_4 sets the scrolling window to 20 lines. If the 802 screen is resized to 40 lines, the scrolling window 803 automatically changes to 36 lines. 804 805 + If a command line option begins with +, the remainder 806 of that option is taken to be an initial command to 807 _l_e_s_s. For example, +G tells _l_e_s_s to start at the end of 808 the file rather than the beginning, and +/xyz tells it 809 to start at the first occurrence of "xyz" in the file. 810 As a special case, +<number> acts like +<number>g; that 811 is, it starts the display at the specified line number 812 (however, see the caveat under the "g" command above). 813 If the option starts with ++, the initial command 814 applies to every file being viewed, not just the first 815 one. The + command described previously may also be 816 used to set (or change) an initial command for every 817 file. 818 819 820LINE EDITING 821 When entering command line at the bottom of the screen (for 822 example, a filename for the :e command, or the pattern for a 823 search command), certain keys can be used to manipulate the 824 command line. Most commands have an alternate form in [ 825 brackets ] which can be used if a key does not exist on a 826 particular keyboard. (The bracketed forms do not work in the 827 MS-DOS version.) Any of these special keys may be entered 828 literally by preceding it with the "literal" character, 829 either ^V or ^A. A backslash itself may also be entered 830 literally by entering two backslashes. 831 832 LEFTARROW [ ESC-h ] 833 Move the cursor one space to the left. 834 835 RIGHTARROW [ ESC-l ] 836 Move the cursor one space to the right. 837 838 ^LEFTARROW [ ESC-b or ESC-LEFTARROW ] 839 (That is, CONTROL and LEFTARROW simultaneously.) Move 840 the cursor one word to the left. 841 842 ^RIGHTARROW [ ESC-w or ESC-RIGHTARROW ] 843 (That is, CONTROL and RIGHTARROW simultaneously.) Move 844 the cursor one word to the right. 845 846 HOME [ ESC-0 ] 847 Move the cursor to the beginning of the line. 848 849 END [ ESC-$ ] 850 Move the cursor to the end of the line. 851 852 853 854 855 13 856 857 858 859 860 861 862LESS(1) USER COMMANDS LESS(1) 863 864 865 866 BACKSPACE 867 Delete the character to the left of the cursor, or can- 868 cel the command if the command line is empty. 869 870 DELETE or [ ESC-x ] 871 Delete the character under the cursor. 872 873 ^BACKSPACE [ ESC-BACKSPACE ] 874 (That is, CONTROL and BACKSPACE simultaneously.) Delete 875 the word to the left of the cursor. 876 877 ^DELETE [ ESC-X or ESC-DELETE ] 878 (That is, CONTROL and DELETE simultaneously.) Delete 879 the word under the cursor. 880 881 UPARROW [ ESC-k ] 882 Retrieve the previous command line. 883 884 DOWNARROW [ ESC-j ] 885 Retrieve the next command line. 886 887 TAB Complete the partial filename to the left of the cur- 888 sor. If it matches more than one filename, the first 889 match is entered into the command line. Repeated TABs 890 will cycle thru the other matching filenames. 891 892 BACKTAB [ ESC-TAB ] 893 Like, TAB, but cycles in the reverse direction thru the 894 matching filenames. 895 896 ^L Complete the partial filename to the left of the cur- 897 sor. If it matches more than one filename, all matches 898 are entered into the command line (if they fit). 899 900 ^U (Unix) or ESC (MS-DOS) 901 Delete the entire command line, or cancel the command 902 if the command line is empty. If you have changed your 903 line-kill character in Unix to something other than ^U, 904 that character is used instead of ^U. 905 906 907KEY BINDINGS 908 You may define your own _l_e_s_s commands by using the program 909 _l_e_s_s_k_e_y (1) to create a file called ".less" in your home 910 directory. This file specifies a set of command keys and an 911 action associated with each key. You may also use _l_e_s_s_k_e_y 912 to change the line-editing keys (see LINE EDITING). See the 913 _l_e_s_s_k_e_y manual page for more details. 914 915 916INPUT PREPROCESSOR 917 You may define an "input preprocessor" for _l_e_s_s. Before _l_e_s_s 918 919 920 921 14 922 923 924 925 926 927 928LESS(1) USER COMMANDS LESS(1) 929 930 931 932 opens a file, it first gives your input preprocessor a 933 chance to modify the way the contents of the file are 934 displayed. An input preprocessor is simply an executable 935 program (or shell script), which writes the contents of the 936 file to a different file, called the replacement file. The 937 contents of the replacement file are then displayed in place 938 of the contents of the original file. However, it will 939 appear to the user as if the original file is opened; that 940 is, _l_e_s_s will display the original filename as the name of 941 the current file. 942 943 An input preprocessor receives one command line argument, 944 the original filename, as entered by the user. It should 945 create the replacement file, and when finished, print the 946 name of the replacement file to its standard output. If the 947 input preprocessor does not output a replacement filename, 948 _l_e_s_s uses the original file, as normal. The input prepro- 949 cessor is not called when viewing standard input. To set up 950 an input preprocessor, set the LESSOPEN environment variable 951 to a command line which will invoke your input preprocessor. 952 This command line should include one occurrence of the 953 string "%s", which will be replaced by the filename when the 954 input preprocessor command is invoked. 955 956 When _l_e_s_s closes a file opened in such a way, it will call 957 another program, called the input postprocessor, which may 958 perform any desired clean-up action (such as deleting the 959 replacement file created by LESSOPEN). This program 960 receives two command line arguments, the original filename 961 as entered by the user, and the name of the replacement 962 file. To set up an input postprocessor, set the LESSCLOSE 963 environment variable to a command line which will invoke 964 your input postprocessor. It may include two occurrences of 965 the string "%s"; the first is replaced with the original 966 name of the file and the second with the name of the 967 replacement file, which was output by LESSOPEN. 968 969 For example, on many Unix systems, these two scripts will 970 allow you to keep files in compressed format, but still let 971 _l_e_s_s view them directly: 972 973 lessopen.sh: 974 #! /bin/sh 975 case "$1" in 976 *.Z) uncompress -c $1 >/tmp/less.$$ 2>/dev/null 977 if [ -s /tmp/less.$$ ]; then 978 echo /tmp/less.$$ 979 else 980 rm -f /tmp/less.$$ 981 fi 982 ;; 983 esac 984 985 986 987 15 988 989 990 991 992 993 994LESS(1) USER COMMANDS LESS(1) 995 996 997 998 lessclose.sh: 999 #! /bin/sh 1000 rm $2 1001 1002 To use these scripts, put them both where they can be exe- 1003 cuted and set LESSOPEN="lessopen.sh %s", and 1004 LESSCLOSE="lessclose.sh %s %s". More complex LESSOPEN and 1005 LESSCLOSE scripts may be written to accept other types of 1006 compressed files, and so on. 1007 1008 It is also possible to set up an input preprocessor to pipe 1009 the file data directly to _l_e_s_s, rather than putting the data 1010 into a replacement file. This avoids the need to decompress 1011 the entire file before starting to view it. An input 1012 preprocessor that works this way is called an input pipe. 1013 An input pipe, instead of writing the name of a replacement 1014 file on its standard output, writes the entire contents of 1015 the replacement file on its standard output. If the input 1016 pipe does not write any characters on its standard output, 1017 then there is no replacement file and _l_e_s_s uses the original 1018 file, as normal. To use an input pipe, make the first char- 1019 acter in the LESSOPEN environment variable a vertical bar 1020 (|) to signify that the input preprocessor is an input pipe. 1021 1022 For example, on many Unix systems, this script will work 1023 like the previous example scripts: 1024 1025 lesspipe.sh: 1026 !# /bin/sh 1027 case "$1" in 1028 *.Z) uncompress -c $1 2>/dev/null 1029 ;; 1030 esac 1031 1032 To use this script, put it where it can be executed and set 1033 LESSOPEN="|lesspipe.sh %s". When an input pipe is used, a 1034 LESSCLOSE postprocessor can be used, but it is usually not 1035 necessary since there is no replacement file to clean up. 1036 In this case, the replacement file name passed to the LESS- 1037 CLOSE postprocessor is "-". 1038 1039 1040NATIONAL CHARACTER SETS 1041 There are three types of characters in the input file: 1042 1043 normal characters 1044 can be displayed directly to the screen. 1045 1046 control characters 1047 should not be displayed directly, but are expected to 1048 be found in ordinary text files (such as backspace and 1049 tab). 1050 1051 1052 1053 16 1054 1055 1056 1057 1058 1059 1060LESS(1) USER COMMANDS LESS(1) 1061 1062 1063 1064 binary characters 1065 should not be displayed directly and are not expected 1066 to be found in text files. 1067 1068 A "character set" is simply a description of which charac- 1069 ters are to be considered normal, control, and binary. The 1070 LESSCHARSET environment variable may be used to select a 1071 character set. Possible values for LESSCHARSET are: 1072 1073 ascii 1074 The default character set. BS, TAB, NL, CR, and 1075 formfeed are control characters, all chars with values 1076 between 127 and 255 are binary, and all others are nor- 1077 mal. 1078 1079 latin1 1080 Selects the ISO 8859/1 character set. latin-1 is the 1081 same as ASCII, except characters between 161 and 255 1082 are treated as normal characters. 1083 1084 dos Selects a character set appropriate for MS-DOS. 1085 1086 koi8-r 1087 Selects a Russian character set. 1088 1089 next Selects a character set appropriate for NeXT computers. 1090 1091 In special cases, it may be desired to tailor _l_e_s_s to use a 1092 character set other than the ones definable by LESSCHARSET. 1093 In this case, the environment variable LESSCHARDEF can be 1094 used to define a character set. It should be set to a 1095 string where each character in the string represents one 1096 character in the character set. The character "." is used 1097 for a normal character, "c" for control, and "b" for binary. 1098 A decimal number may be used for repetition. For example, 1099 "bccc4b." would mean character 0 is binary, 1, 2 and 3 are 1100 control, 4, 5, 6 and 7 are binary, and 8 is normal. All 1101 characters after the last are taken to be the same as the 1102 last, so characters 9 through 255 would be normal. (This is 1103 an example, and does not necessarily represent any real 1104 character set.) 1105 1106 This table shows the value of LESSCHARDEF which is 1107 equivalent to each of the possible values for LESSCHARSET: 1108 1109 ascii 8bcccbcc18b95.b 1110 latin1 8bcccbcc18b95.33b. 1111 dos 8bcccbcc12bc5b95.b. 1112 koi8-r 8bcccbcc18b95.b128. 1113 next 8bcccbcc18b95.bb125.bb 1114 1115 1116 1117 1118 1119 17 1120 1121 1122 1123 1124 1125 1126LESS(1) USER COMMANDS LESS(1) 1127 1128 1129 1130 If neither LESSCHARSET nor LESSCHARDEF is set, but your sys- 1131 tem supports the _s_e_t_l_o_c_a_l_e interface, _l_e_s_s will use setlo- 1132 cale to determine the character set. setlocale is con- 1133 trolled by setting the LANG or LC_CTYPE environment vari- 1134 ables. 1135 1136 Control and binary characters are displayed in standout 1137 (reverse video). Each such character is displayed in caret 1138 notation if possible (e.g. ^A for control-A). Caret nota- 1139 tion is used only if inverting the 0100 bit results in a 1140 normal printable character. Otherwise, the character is 1141 displayed as a hex number in angle brackets. This format 1142 can be changed by setting the LESSBINFMT environment vari- 1143 able. LESSBINFMT may begin with a "*" and one character to 1144 select the display attribute: "*k" is blinking, "*d" is 1145 bold, "*u" is underlined, "*s" is standout. If LESSBINFMT 1146 does not begin with a "*", normal attribute is assumed. The 1147 remainder of LESSBINFMT is a string which may include one 1148 printf-style escape sequence (a % followed by x, X, o, d, 1149 etc.). For example, if LESSBINFMT is "*u[%x]", binary char- 1150 acters are displayed in underlined hexadecimal surrounded by 1151 brackets. The default if no LESSBINFMT is specified is 1152 "*d<%X>". 1153 1154 1155PROMPTS 1156 The -P option allows you to tailor the prompt to your 1157 preference. The string given to the -P option replaces the 1158 specified prompt string. Certain characters in the string 1159 are interpreted specially. The prompt mechanism is rather 1160 complicated to provide flexibility, but the ordinary user 1161 need not understand the details of constructing personalized 1162 prompt strings. 1163 1164 A percent sign followed by a single character is expanded 1165 according to what the following character is: 1166 1167 %b_X Replaced by the byte offset into the current input 1168 file. The b is followed by a single character (shown 1169 as _X above) which specifies the line whose byte offset 1170 is to be used. If the character is a "t", the byte 1171 offset of the top line in the display is used, an "m" 1172 means use the middle line, a "b" means use the bottom 1173 line, a "B" means use the line just after the bottom 1174 line, and a "j" means use the "target" line, as speci- 1175 fied by the -j option. 1176 1177 %B Replaced by the size of the current input file. 1178 1179 %E Replaced by the name of the editor (from the VISUAL 1180 environment variable, or the EDITOR environment vari- 1181 able if VISUAL is not defined). See the discussion of 1182 1183 1184 1185 18 1186 1187 1188 1189 1190 1191 1192LESS(1) USER COMMANDS LESS(1) 1193 1194 1195 1196 the LESSEDIT feature below. 1197 1198 %f Replaced by the name of the current input file. 1199 1200 %i Replaced by the index of the current file in the list 1201 of input files. 1202 1203 %l_X Replaced by the line number of a line in the input 1204 file. The line to be used is determined by the _X, as 1205 with the %b option. 1206 1207 %L Replaced by the line number of the last line in the 1208 input file. 1209 1210 %m Replaced by the total number of input files. 1211 1212 %p_X Replaced by the percent into the current input file. 1213 The line used is determined by the _X as with the %b 1214 option. 1215 1216 %s Same as %B. 1217 1218 %t Causes any trailing spaces to be removed. Usually used 1219 at the end of the string, but may appear anywhere. 1220 1221 %x Replaced by the name of the next input file in the 1222 list. 1223 1224 If any item is unknown (for example, the file size if input 1225 is a pipe), a question mark is printed instead. 1226 1227 The format of the prompt string can be changed depending on 1228 certain conditions. A question mark followed by a single 1229 character acts like an "IF": depending on the following 1230 character, a condition is evaluated. If the condition is 1231 true, any characters following the question mark and condi- 1232 tion character, up to a period, are included in the prompt. 1233 If the condition is false, such characters are not included. 1234 A colon appearing between the question mark and the period 1235 can be used to establish an "ELSE": any characters between 1236 the colon and the period are included in the string if and 1237 only if the IF condition is false. Condition characters 1238 (which follow a question mark) may be: 1239 1240 ?a True if any characters have been included in the prompt 1241 so far. 1242 1243 ?b_X True if the byte offset of the specified line is known. 1244 1245 ?B True if the size of current input file is known. 1246 1247 ?e True if at end-of-file. 1248 1249 1250 1251 19 1252 1253 1254 1255 1256 1257 1258LESS(1) USER COMMANDS LESS(1) 1259 1260 1261 1262 ?f True if there is an input filename (that is, if input 1263 is not a pipe). 1264 1265 ?l_X True if the line number of the specified line is known. 1266 1267 ?L True if the line number of the last line in the file is 1268 known. 1269 1270 ?m True if there is more than one input file. 1271 1272 ?n True if this is the first prompt in a new input file. 1273 1274 ?p_X True if the percent into the current input file of the 1275 specified line is known. 1276 1277 ?s Same as "?B". 1278 1279 ?x True if there is a next input file (that is, if the 1280 current input file is not the last one). 1281 1282 Any characters other than the special ones (question mark, 1283 colon, period, percent, and backslash) become literally part 1284 of the prompt. Any of the special characters may be 1285 included in the prompt literally by preceding it with a 1286 backslash. 1287 1288 Some examples: 1289 1290 ?f%f:Standard input. 1291 1292 This prompt prints the filename, if known; otherwise the 1293 string "Standard input". 1294 1295 ?f%f .?ltLine %lt:?pt%pt\%:?btByte %bt:-... 1296 1297 This prompt would print the filename, if known. The 1298 filename is followed by the line number, if known, otherwise 1299 the percent if known, otherwise the byte offset if known. 1300 Otherwise, a dash is printed. Notice how each question mark 1301 has a matching period, and how the % after the %pt is 1302 included literally by escaping it with a backslash. 1303 1304 ?n?f%f .?m(file %i of %m) ..?e(END) ?x- Next\: %x..%t 1305 1306 This prints the filename if this is the first prompt in a 1307 file, followed by the "file N of N" message if there is more 1308 than one input file. Then, if we are at end-of-file, the 1309 string "(END)" is printed followed by the name of the next 1310 file, if there is one. Finally, any trailing spaces are 1311 truncated. This is the default prompt. For reference, here 1312 are the defaults for the other two prompts (-m and -M 1313 respectively). Each is broken into two lines here for 1314 1315 1316 1317 20 1318 1319 1320 1321 1322 1323 1324LESS(1) USER COMMANDS LESS(1) 1325 1326 1327 1328 readability only. 1329 1330 ?n?f%f .?m(file %i of %m) ..?e(END) ?x- Next\: %x.: 1331 ?pB%pB\%:byte %bB?s/%s...%t 1332 1333 ?f%f .?n?m(file %i of %m) ..?ltline %lt?L/%L. :byte %bB?s/%s. . 1334 ?e(END) ?x- Next\: %x.:?pB%pB\%..%t 1335 1336 And here is the default message produced by the = command: 1337 1338 ?f%f .?m(file %i of %m) .?ltline %lt?L/%L. . 1339 byte %bB?s/%s. ?e(END) :?pB%pB\%..%t 1340 1341 The prompt expansion features are also used for another pur- 1342 pose: if an environment variable LESSEDIT is defined, it is 1343 used as the command to be executed when the v command is 1344 invoked. The LESSEDIT string is expanded in the same way as 1345 the prompt strings. The default value for LESSEDIT is: 1346 1347 %E ?lm+%lm. %f 1348 1349 Note that this expands to the editor name, followed by a + 1350 and the line number, followed by the file name. If your 1351 editor does not accept the "+linenumber" syntax, or has 1352 other differences in invocation syntax, the LESSEDIT vari- 1353 able can be changed to modify this default. 1354 1355 1356ENVIRONMENT VARIABLES 1357 COLUMNS 1358 Sets the number of columns on the screen. Takes pre- 1359 cedence over the number of columns specified by the 1360 TERM variable. (But if you have a windowing system 1361 which supports TIOCGWINSZ or WIOCGETD, the window 1362 system's idea of the screen size takes precedence over 1363 the LINES and COLUMNS environment variables.) 1364 1365 EDITOR 1366 The name of the editor (used for the v command). 1367 1368 HOME Name of the user's home directory (used to find a .less 1369 file). 1370 1371 LANG Language for determining the character set. 1372 1373 LC_CTYPE 1374 Language for determining the character set. 1375 1376 LESS Flags which are passed to _l_e_s_s automatically. 1377 1378 LESSBINFMT 1379 Format for displaying non-printable, non-control 1380 1381 1382 1383 21 1384 1385 1386 1387 1388 1389 1390LESS(1) USER COMMANDS LESS(1) 1391 1392 1393 1394 characters. 1395 1396 LESSCHARDEF 1397 Defines a character set. 1398 1399 LESSCHARSET 1400 Selects a predefined character set. 1401 1402 LESSCLOSE 1403 Command line to invoke the (optional) input- 1404 postprocessor. 1405 1406 LESSEDIT 1407 Editor prototype string (used for the v command). See 1408 discussion under PROMPTS. 1409 1410 LESSHELP 1411 Name of the help file. 1412 1413 LESSOPEN 1414 Command line to invoke the (optional) input- 1415 preprocessor. 1416 1417 LINES 1418 Sets the number of lines on the screen. Takes pre- 1419 cedence over the number of lines specified by the TERM 1420 variable. 1421 1422 SHELL 1423 The shell used to execute the ! command, as well as to 1424 expand filenames. 1425 1426 TERM The type of terminal on which _l_e_s_s is being run. 1427 1428 VISUAL 1429 The name of the editor (used for the v command). 1430 1431 1432SEE ALSO 1433 lesskey(1) 1434 1435 1436WARNINGS 1437 The = command and prompts (unless changed by -P) report the 1438 line number of the line at the top of the screen, but the 1439 byte and percent of the line at the bottom of the screen. 1440 1441 If the :e command is used to name more than one file, and 1442 one of the named files has been viewed previously, the new 1443 files may be entered into the list in an unexpected order. 1444 1445 1446 1447 1448 1449 22 1450 1451 1452 1453 1454 1455 1456LESS(1) USER COMMANDS LESS(1) 1457 1458 1459 1460 On certain older terminals (the so-called "magic cookie" 1461 terminals), search highlighting will cause an erroneous 1462 display. On such terminals, search highlighting is disabled 1463 by default to avoid possible problems. 1464 1465 In certain cases, when search highlighting is enabled and a 1466 search pattern begins with a ^, more text than the matching 1467 string may be highlighted. 1468 1469 1470 1471COPYRIGHT 1472 Copyright (c) 1984,1985,1989,1994,1995 Mark Nudelman 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 23 1516 1517 1518 1519