1 .\" 2 .\" Sun Microsystems, Inc. gratefully acknowledges The Open Group for 3 .\" permission to reproduce portions of its copyrighted documentation. 4 .\" Original documentation from The Open Group can be obtained online at 5 .\" http://www.opengroup.org/bookstore/. 6 .\" 7 .\" The Institute of Electrical and Electronics Engineers and The Open 8 .\" Group, have given us permission to reprint portions of their 9 .\" documentation. 10 .\" 11 .\" In the following statement, the phrase ``this text'' refers to portions 12 .\" of the system documentation. 13 .\" 14 .\" Portions of this text are reprinted and reproduced in electronic form 15 .\" in the SunOS Reference Manual, from IEEE Std 1003.1, 2004 Edition, 16 .\" Standard for Information Technology -- Portable Operating System 17 .\" Interface (POSIX), The Open Group Base Specifications Issue 6, 18 .\" Copyright (C) 2001-2004 by the Institute of Electrical and Electronics 19 .\" Engineers, Inc and The Open Group. In the event of any discrepancy 20 .\" between these versions and the original IEEE and The Open Group 21 .\" Standard, the original IEEE and The Open Group Standard is the referee 22 .\" document. The original Standard can be obtained online at 23 .\" http://www.opengroup.org/unix/online.html. 24 .\" 25 .\" This notice shall appear on any product containing this material. 26 .\" 27 .\" The contents of this file are subject to the terms of the 28 .\" Common Development and Distribution License (the "License"). 29 .\" You may not use this file except in compliance with the License. 30 .\" 31 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 32 .\" or http://www.opensolaris.org/os/licensing. 33 .\" See the License for the specific language governing permissions 34 .\" and limitations under the License. 35 .\" 36 .\" When distributing Covered Code, include this CDDL HEADER in each 37 .\" file and include the License file at usr/src/OPENSOLARIS.LICENSE. 38 .\" If applicable, add the following below this CDDL HEADER, with the 39 .\" fields enclosed by brackets "[]" replaced with your own identifying 40 .\" information: Portions Copyright [yyyy] [name of copyright owner] 41 .\" 42 .\" 43 .\" Copyright 1989 AT&T 44 .\" Portions Copyright (c) 1992, X/Open Company Limited All Rights Reserved 45 .\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved. 46 .\" 47 .TH VI 1HAS "May 16, 2007" 48 .SH NAME 49 vi, view, vedit \- screen-oriented (visual) display editor based on ex 50 .SH SYNOPSIS 51 .LP 52 .nf 53 \fB/usr/bin/vi\fR [\fB-|\fR \fB-s\fR] [\fB-l\fR] [\fB-L\fR] [\fB-R\fR] [\fB-r\fR [\fIfilename\fR]] [\fB-S\fR] 54 [\fB-t\fR \fItag\fR] [\fB-v\fR] [\fB-V\fR] [\fB-x\fR] [\fB-w\fR\fIn\fR] [\fB-C\fR] 55 [\fB+\fR\fIcommand\fR | \fB-c\fR \fIcommand\fR] \fIfilename\fR... 56 .fi 57 58 .LP 59 .nf 60 \fB/usr/bin/view\fR [\fB-|\fR \fB-s\fR] [\fB-l\fR] [\fB-L\fR] [\fB-R\fR] [\fB-r\fR [\fIfilename\fR]] [\fB-S\fR] 61 [\fB-t\fR \fItag\fR] [\fB-v\fR] [\fB-V\fR] [\fB-x\fR] [\fB-w\fR\fIn\fR] [\fB-C\fR] 62 [\fB+\fR\fIcommand\fR | \fB-c\fR \fIcommand\fR] \fIfilename\fR... 63 .fi 64 65 .LP 66 .nf 67 \fB/usr/bin/vedit\fR [\fB-|\fR \fB-s\fR] [\fB-l\fR] [\fB-L\fR] [\fB-R\fR] [\fB-r\fR [\fIfilename\fR]] [\fB-S\fR] 68 [\fB-t\fR \fItag\fR] [\fB-v\fR] [\fB-V\fR] [\fB-x\fR] [\fB-w\fR\fIn\fR] [\fB-C\fR] 69 [\fB+\fR\fIcommand\fR | \fB-c\fR \fIcommand\fR] \fIfilename\fR... 70 .fi 71 72 .LP 73 .nf 74 \fB/usr/xpg4/bin/vi\fR [\fB-|\fR \fB-s\fR] [\fB-l\fR] [\fB-L\fR] [\fB-R\fR] [\fB-r\fR [\fIfilename\fR]] 75 [\fB-S\fR] [\fB-t\fR \fItag\fR] [\fB-v\fR] [\fB-V\fR] [\fB-x\fR] [\fB-w\fR\fIn\fR] [\fB-C\fR] 76 [\fB+\fR\fIcommand\fR | \fB-c\fR \fIcommand\fR] \fIfilename\fR... 77 .fi 78 79 .LP 80 .nf 81 \fB/usr/xpg4/bin/view\fR [\fB-|\fR \fB-s\fR] [\fB-l\fR] [\fB-L\fR] [\fB-R\fR] [\fB-r\fR [\fIfilename\fR]] 82 [\fB-S\fR] [\fB-t\fR \fItag\fR] [\fB-v\fR] [\fB-V\fR] [\fB-x\fR] [\fB-w\fR\fIn\fR] [\fB-C\fR] 83 [\fB+\fR\fIcommand\fR | \fB-c\fR \fIcommand\fR] \fIfilename\fR... 84 .fi 85 86 .LP 87 .nf 88 \fB/usr/xpg4/bin/vedit\fR [\fB-|\fR \fB-s\fR] [\fB-l\fR] [\fB-L\fR] [\fB-R\fR] [\fB-r\fR [\fIfilename\fR]] 89 [\fB-S\fR] [\fB-t\fR \fItag\fR] [\fB-v\fR] [\fB-V\fR] [\fB-x\fR] [\fB-w\fR\fIn\fR] [\fB-C\fR] 90 [\fB+\fR\fIcommand\fR | \fB-c\fR \fIcommand\fR] \fIfilename\fR... 91 .fi 92 93 .LP 94 .nf 95 \fB/usr/xpg6/bin/vi\fR [\fB-|\fR \fB-s\fR] [\fB-l\fR] [\fB-L\fR] [\fB-R\fR] [\fB-r\fR [\fIfilename\fR]] 96 [\fB-S\fR] [\fB-t\fR \fItag\fR] [\fB-v\fR] [\fB-V\fR] [\fB-x\fR] [\fB-w\fR\fIn\fR] [\fB-C\fR] 97 [\fB+\fR\fIcommand\fR | \fB-c\fR \fIcommand\fR] \fIfilename\fR... 98 .fi 99 100 .LP 101 .nf 102 \fB/usr/xpg6/bin/view\fR [\fB-|\fR \fB-s\fR] [\fB-l\fR] [\fB-L\fR] [\fB-R\fR] [\fB-r\fR [\fIfilename\fR]] 103 [\fB-S\fR] [\fB-t\fR \fItag\fR] [\fB-v\fR] [\fB-V\fR] [\fB-x\fR] [\fB-w\fR\fIn\fR] [\fB-C\fR] 104 [\fB+\fR\fIcommand\fR | \fB-c\fR \fIcommand\fR] \fIfilename\fR... 105 .fi 106 107 .LP 108 .nf 109 \fB/usr/xpg6/bin/vedit\fR [\fB-|\fR \fB-s\fR] [\fB-l\fR] [\fB-L\fR] [\fB-R\fR] [\fB-r\fR [\fIfilename\fR]] 110 [\fB-S\fR] [\fB-t\fR \fItag\fR] [\fB-v\fR] [\fB-V\fR] [\fB-x\fR] [\fB-w\fR\fIn\fR] [\fB-C\fR] 111 [\fB+\fR\fIcommand\fR | \fB-c\fR \fIcommand\fR] \fIfilename\fR... 112 .fi 113 114 .SH DESCRIPTION 115 .LP 116 The \fBvi\fR (visual) utility is a display-oriented text editor based on an 117 underlying line editor \fBex\fR. It is possible to use the command mode of 118 \fBex\fR from within \fBvi\fR and to use the command mode of \fBvi\fR from 119 within \fBex\fR. The visual commands are described on this manual page; how to 120 set options (like automatically numbering lines and automatically starting a 121 new output line when you type carriage return) and all \fBex\fR line editor 122 commands are described on the \fBex\fR(1) manual page. 123 .sp 124 .LP 125 When using \fBvi\fR, changes you make to the file are reflected in what you see 126 on your terminal screen. The position of the cursor on the screen indicates the 127 position within the file. 128 .sp 129 .LP 130 The \fBview\fR invocation is the same as \fBvi\fR except that the 131 \fBreadonly\fR flag is set. 132 .sp 133 .LP 134 The \fBvedit\fR invocation is intended for beginners. It is the same as 135 \fBvi\fR except that the \fBreport\fR flag is set to \fB1\fR, the 136 \fBshowmode\fR and \fBnovice\fR flags are set, and \fBmagic\fR is turned off. 137 These defaults make it easier to learn how to use \fBvi\fR. 138 .SH OPTIONS 139 .LP 140 The following options are supported: 141 .SS "Invocation Options" 142 .LP 143 The following invocation options are interpreted by \fBvi\fR (previously 144 documented options are discussed under NOTES): 145 .sp 146 .ne 2 147 .na 148 \fB\fB\(mi\fR | \fB-s\fR\fR 149 .ad 150 .RS 25n 151 Suppresses all interactive user feedback. This is useful when processing editor 152 scripts. 153 .RE 154 155 .sp 156 .ne 2 157 .na 158 \fB\fB-C\fR\fR 159 .ad 160 .RS 25n 161 Encryption option. Same as the \fB-x\fR option, except that \fBvi\fR simulates 162 the \fBC\fR command of \fBex\fR. The \fBC\fR command is like the \fBX\fR 163 command of \fBex\fR, except that all text read in is assumed to have been 164 encrypted. 165 .RE 166 167 .sp 168 .ne 2 169 .na 170 \fB\fB-l\fR\fR 171 .ad 172 .RS 25n 173 Sets up for editing \fBLISP\fR programs. 174 .RE 175 176 .sp 177 .ne 2 178 .na 179 \fB\fB-L\fR\fR 180 .ad 181 .RS 25n 182 Lists the name of all files saved as the result of an editor or system crash. 183 .RE 184 185 .sp 186 .ne 2 187 .na 188 \fB\fB-r\fR \fIfilename\fR\fR 189 .ad 190 .RS 25n 191 Edits \fIfilename\fR after an editor or system crash. (Recovers the version of 192 \fIfilename\fR that was in the buffer when the crash occurred.) 193 .RE 194 195 .sp 196 .ne 2 197 .na 198 \fB\fB-R\fR\fR 199 .ad 200 .RS 25n 201 \fBReadonly\fR mode. The \fBreadonly\fR flag is set, preventing accidental 202 overwriting of the file. 203 .RE 204 205 .sp 206 .ne 2 207 .na 208 \fB\fB-S\fR\fR 209 .ad 210 .RS 25n 211 This option is used in conjunction with the \fB-t\fR \fItag\fR option to tell 212 \fBvi\fR that the tags file can not be sorted and that, if the binary search 213 (which relies on a sorted tags file) for \fItag\fR fails to find it, the much 214 slower linear search should also be done. Since the linear search is slow, 215 users of large tags files should ensure that the tags files are sorted rather 216 than use this flag. Creation of tags files normally produces sorted tags files. 217 See \fBctags\fR(1) for more information on tags files. 218 .RE 219 220 .sp 221 .ne 2 222 .na 223 \fB\fB-t\fR \fItag\fR\fR 224 .ad 225 .RS 25n 226 Edits the file containing \fItag\fR and position the editor at its definition. 227 It is an error to specify more than one \fB-t\fR option. 228 .RE 229 230 .sp 231 .ne 2 232 .na 233 \fB\fB-v\fR\fR 234 .ad 235 .RS 25n 236 Starts up in display editing state, using \fBvi\fR. You can achieve the same 237 effect by typing the \fBvi\fR command itself. 238 .RE 239 240 .sp 241 .ne 2 242 .na 243 \fB\fB-V\fR\fR 244 .ad 245 .RS 25n 246 Verbose. When \fBex\fR commands are read by means of standard input, the input 247 is echoed to standard error. This can be useful when processing \fBex\fR 248 commands within shell scripts. 249 .RE 250 251 .sp 252 .ne 2 253 .na 254 \fB\fB-w\fR\fIn\fR\fR 255 .ad 256 .RS 25n 257 Sets the default window size to \fIn\fR. This is useful when using the editor 258 over a slow speed line. 259 .RE 260 261 .sp 262 .ne 2 263 .na 264 \fB\fB-x\fR\fR 265 .ad 266 .RS 25n 267 Encryption option. When used, \fBvi\fR simulates the \fBX\fR command of 268 \fBex\fR and prompts the user for a key. This key is used to encrypt and 269 decrypt text using the algorithm of the \fBcrypt\fR command. The \fBX\fR 270 command makes an educated guess to determine whether text read in is encrypted 271 or not. The temporary buffer file is encrypted also, using a transformed 272 version of the key typed in for the \fB-x\fR option. If an empty encryption 273 key is entered (that is, if the return key is pressed right after the prompt), 274 the file is not encrypted. This is a good way to decrypt a file erroneously 275 encrypted with a mistyped encryption key, such as a backspace or undo key. 276 .RE 277 278 .sp 279 .ne 2 280 .na 281 \fB\fB-\fR\fIcommand\fR | \fB-c\fR \fIcommand\fR\fR 282 .ad 283 .RS 25n 284 Begins editing by executing the specified editor \fIcommand\fR (usually a 285 search or positioning command). 286 .RE 287 288 .SS "/usr/xpg4/bin/vi and /usr/xpg6/bin/vi" 289 .LP 290 If both the \fB-t\fR \fItag\fR and the \fB-c\fR \fIcommand\fR options are 291 given, the \fB-t\fR \fItag\fR option is processed first. That is, the file 292 containing \fItag\fR is selected by \fB-t\fR and then the command is executed. 293 .SH OPERANDS 294 .LP 295 The following operands are supported: 296 .sp 297 .ne 2 298 .na 299 \fB\fIfilename\fR\fR 300 .ad 301 .RS 12n 302 A file to be edited. 303 .RE 304 305 .SH COMMAND SUMMARY 306 .LP 307 The \fBvi\fR command modes are summarized in this section. 308 .SS "vi Modes" 309 .ne 2 310 .na 311 \fBCommand\fR 312 .ad 313 .RS 13n 314 Normal and initial mode. Other modes return to command mode upon completion. 315 \fIESC\fR (escape) is used to cancel a partial command. 316 .RE 317 318 .sp 319 .ne 2 320 .na 321 \fBInput\fR 322 .ad 323 .RS 13n 324 Entered by setting any of the following options: 325 .sp 326 .in +2 327 .nf 328 a A i I o O c C s S R 329 .fi 330 .in -2 331 .sp 332 333 Arbitrary text can then be entered. Input mode is normally terminated with the 334 \fIESC\fR character, or, abnormally, with an interrupt. 335 .RE 336 337 .sp 338 .ne 2 339 .na 340 \fBLast line\fR 341 .ad 342 .RS 13n 343 Reading input for \fB: / ?\fR or \fB!\fR. Terminate by typing a carriage 344 return. An interrupt cancels termination. 345 .RE 346 347 .SS "Sample Commands" 348 .LP 349 In the descriptions, \fICR\fR stands for carriage return and \fIESC\fR stands 350 for the escape key. 351 .sp 352 .ne 2 353 .na 354 \fB\(<-, \(->\fR 355 .ad 356 .br 357 .na 358 \fBdown-arrow\fR 359 .ad 360 .br 361 .na 362 \fBup-arrow\fR 363 .ad 364 .RS 14n 365 arrow keys move the cursor 366 .RE 367 368 .sp 369 .ne 2 370 .na 371 \fBh j k l\fR 372 .ad 373 .RS 14n 374 same as arrow keys 375 .RE 376 377 .sp 378 .ne 2 379 .na 380 \fBi\fItext\fR\fIESC\fR\fR 381 .ad 382 .RS 14n 383 insert \fItext\fR 384 .RE 385 386 .sp 387 .ne 2 388 .na 389 \fBcw\fInew\fR\fIESC\fR\fR 390 .ad 391 .RS 14n 392 change word to \fInew\fR 393 .RE 394 395 .sp 396 .ne 2 397 .na 398 \fBea\fIs\fR\fIESC\fR\fR 399 .ad 400 .RS 14n 401 pluralize word (end of word; append \fBs\fR; escape from input state) 402 .RE 403 404 .sp 405 .ne 2 406 .na 407 \fBx\fR 408 .ad 409 .RS 14n 410 delete a character 411 .RE 412 413 .sp 414 .ne 2 415 .na 416 \fBdw\fR 417 .ad 418 .RS 14n 419 delete a word 420 .RE 421 422 .sp 423 .ne 2 424 .na 425 \fBdd\fR 426 .ad 427 .RS 14n 428 delete a line 429 .RE 430 431 .sp 432 .ne 2 433 .na 434 \fB3dd\fR 435 .ad 436 .RS 14n 437 delete 3 lines 438 .RE 439 440 .sp 441 .ne 2 442 .na 443 \fBu\fR 444 .ad 445 .RS 14n 446 undo previous change 447 .RE 448 449 .sp 450 .ne 2 451 .na 452 \fBZZ\fR 453 .ad 454 .RS 14n 455 exit \fBvi\fR, saving changes 456 .RE 457 458 .sp 459 .ne 2 460 .na 461 \fB:q!\fICR\fR\fR 462 .ad 463 .RS 14n 464 quit, discarding changes 465 .RE 466 467 .sp 468 .ne 2 469 .na 470 \fB/\fItext\fR\fICR\fR\fR 471 .ad 472 .RS 14n 473 search for \fItext\fR 474 .RE 475 476 .sp 477 .ne 2 478 .na 479 \fB^U ^D\fR 480 .ad 481 .RS 14n 482 scroll up or down 483 .RE 484 485 .sp 486 .ne 2 487 .na 488 \fB:\fIcmd\fR\fICR\fR\fR 489 .ad 490 .RS 14n 491 any \fBex\fR or \fBed\fR command 492 .RE 493 494 .SS "Counts Before vi Commands" 495 .LP 496 Numbers can be typed as a prefix to some commands. They are interpreted in one 497 of these ways: 498 .sp 499 .ne 2 500 .na 501 \fBline/column number\fR 502 .ad 503 .RS 22n 504 z G | 505 .RE 506 507 .sp 508 .ne 2 509 .na 510 \fBscroll amount\fR 511 .ad 512 .RS 22n 513 ^D ^U 514 .RE 515 516 .sp 517 .ne 2 518 .na 519 \fBrepeat effect\fR 520 .ad 521 .RS 22n 522 most of the rest 523 .RE 524 525 .SS "Interrupting, Canceling" 526 .ne 2 527 .na 528 \fB\fIESC\fR\fR 529 .ad 530 .RS 7n 531 end insert or incomplete command 532 .RE 533 534 .sp 535 .ne 2 536 .na 537 \fB\fIDEL\fR\fR 538 .ad 539 .RS 7n 540 (delete or rubout) interrupts 541 .RE 542 543 .SS "File Manipulation" 544 .ne 2 545 .na 546 \fBZZ\fR 547 .ad 548 .RS 15n 549 if file modified, write and exit; otherwise, exit 550 .RE 551 552 .sp 553 .ne 2 554 .na 555 \fB:w\fICR\fR\fR 556 .ad 557 .RS 15n 558 write back changes 559 .RE 560 561 .sp 562 .ne 2 563 .na 564 \fB:w!\fICR\fR\fR 565 .ad 566 .RS 15n 567 forced write, if permission originally not valid 568 .RE 569 570 .sp 571 .ne 2 572 .na 573 \fB:q\fICR\fR\fR 574 .ad 575 .RS 15n 576 quit 577 .RE 578 579 .sp 580 .ne 2 581 .na 582 \fB:q!\fICR\fR\fR 583 .ad 584 .RS 15n 585 quit, discard changes 586 .RE 587 588 .sp 589 .ne 2 590 .na 591 \fB:e \fIname\fR\fICR\fR\fR 592 .ad 593 .RS 15n 594 edit file \fIname\fR 595 .RE 596 597 .sp 598 .ne 2 599 .na 600 \fB:e!\fICR\fR\fR 601 .ad 602 .RS 15n 603 reedit, discard changes 604 .RE 605 606 .sp 607 .ne 2 608 .na 609 \fB:e + \fIname\fR\fICR\fR\fR 610 .ad 611 .RS 15n 612 edit, starting at end 613 .RE 614 615 .sp 616 .ne 2 617 .na 618 \fB:e +\fIn\fR\fICR\fR\fR 619 .ad 620 .RS 15n 621 edit, starting at line \fIn\fR 622 .RE 623 624 .sp 625 .ne 2 626 .na 627 \fB:e #\fICR\fR\fR 628 .ad 629 .RS 15n 630 edit alternate file 631 .RE 632 633 .sp 634 .ne 2 635 .na 636 \fB:e! #\fICR\fR\fR 637 .ad 638 .RS 15n 639 edit alternate file, discard changes 640 .RE 641 642 .sp 643 .ne 2 644 .na 645 \fB:w \fIname\fR\fICR\fR\fR 646 .ad 647 .RS 15n 648 write file \fIname\fR 649 .RE 650 651 .sp 652 .ne 2 653 .na 654 \fB:w! \fIname\fR\fICR\fR\fR 655 .ad 656 .RS 15n 657 overwrite file \fIname\fR 658 .RE 659 660 .sp 661 .ne 2 662 .na 663 \fB:sh\fICR\fR\fR 664 .ad 665 .RS 15n 666 run shell, then return 667 .RE 668 669 .sp 670 .ne 2 671 .na 672 \fB:!\fIcmd\fR\fICR\fR\fR 673 .ad 674 .RS 15n 675 run \fIcmd\fR, then return 676 .RE 677 678 .sp 679 .ne 2 680 .na 681 \fB:n\fICR\fR\fR 682 .ad 683 .RS 15n 684 edit next file in arglist 685 .RE 686 687 .sp 688 .ne 2 689 .na 690 \fB:n \fIargs\fR\fICR\fR\fR 691 .ad 692 .RS 15n 693 specify new arglist 694 .RE 695 696 .sp 697 .ne 2 698 .na 699 \fB^G\fR 700 .ad 701 .RS 15n 702 show current file and line 703 .RE 704 705 .sp 706 .ne 2 707 .na 708 \fB:ta \fItag\fR\fICR\fR\fR 709 .ad 710 .RS 15n 711 position cursor to \fItag\fR 712 .RE 713 714 .sp 715 .LP 716 In general, any \fBex\fR or \fBed\fR command (such as \fIsubstitute\fR or 717 \fIglobal\fR) can be typed, preceded by a colon and followed by a carriage 718 return. 719 .SS "Positioning Within a File" 720 .ne 2 721 .na 722 \fBF\fR 723 .ad 724 .RS 14n 725 forward screen 726 .RE 727 728 .sp 729 .ne 2 730 .na 731 \fB^B\fR 732 .ad 733 .RS 14n 734 backward screen 735 .RE 736 737 .sp 738 .ne 2 739 .na 740 \fB^D\fR 741 .ad 742 .RS 14n 743 scroll down half screen 744 .RE 745 746 .sp 747 .ne 2 748 .na 749 \fB^U\fR 750 .ad 751 .RS 14n 752 scroll up half screen 753 .RE 754 755 .sp 756 .ne 2 757 .na 758 \fB\fIn\fRG\fR 759 .ad 760 .RS 14n 761 go to the beginning of the specified line (end default), where \fIn\fR is a 762 line number 763 .RE 764 765 .sp 766 .ne 2 767 .na 768 \fB/\fIpat\fR\fR 769 .ad 770 .RS 14n 771 next line matching \fIpat\fR 772 .RE 773 774 .sp 775 .ne 2 776 .na 777 \fB?\fIpat\fR\fR 778 .ad 779 .RS 14n 780 previous line matching \fIpat\fR 781 .RE 782 783 .sp 784 .ne 2 785 .na 786 \fBn\fR 787 .ad 788 .RS 14n 789 repeat last \fB/\fR or \fB?\fR command 790 .RE 791 792 .sp 793 .ne 2 794 .na 795 \fBN\fR 796 .ad 797 .RS 14n 798 reverse last \fB/\fR or \fB?\fR command 799 .RE 800 801 .sp 802 .ne 2 803 .na 804 \fB/\fIpat\fR/+\fIn\fR\fR 805 .ad 806 .RS 14n 807 \fIn\fRth line after \fIpat\fR 808 .RE 809 810 .sp 811 .ne 2 812 .na 813 \fB?\fIpat\fR?\(mi\fIn\fR\fR 814 .ad 815 .RS 14n 816 \fIn\fRth line before \fIpat\fR 817 .RE 818 819 .sp 820 .ne 2 821 .na 822 \fB]]\fR 823 .ad 824 .RS 14n 825 next section/function 826 .RE 827 828 .sp 829 .ne 2 830 .na 831 \fB[[\fR 832 .ad 833 .RS 14n 834 previous section/function 835 .RE 836 837 .sp 838 .ne 2 839 .na 840 \fB(\fR 841 .ad 842 .RS 14n 843 beginning of sentence 844 .RE 845 846 .sp 847 .ne 2 848 .na 849 \fB)\fR 850 .ad 851 .RS 14n 852 end of sentence 853 .RE 854 855 .sp 856 .ne 2 857 .na 858 \fB{\fR 859 .ad 860 .RS 14n 861 beginning of paragraph 862 .RE 863 864 .sp 865 .ne 2 866 .na 867 \fB}\fR 868 .ad 869 .RS 14n 870 end of paragraph 871 .RE 872 873 .sp 874 .ne 2 875 .na 876 \fB%\fR 877 .ad 878 .RS 14n 879 find matching \fB( )\fR or \fB{ }\fR 880 .RE 881 882 .SS "Adjusting the Screen" 883 .ne 2 884 .na 885 \fB^L\fR 886 .ad 887 .RS 16n 888 clear and redraw window 889 .RE 890 891 .sp 892 .ne 2 893 .na 894 \fB^R\fR 895 .ad 896 .RS 16n 897 clear and redraw window if \fB^L\fR is \(-> key 898 .RE 899 900 .sp 901 .ne 2 902 .na 903 \fBz\fICR\fR\fR 904 .ad 905 .RS 16n 906 redraw screen with current line at top of window 907 .RE 908 909 .sp 910 .ne 2 911 .na 912 \fBz\(mi\fICR\fR\fR 913 .ad 914 .RS 16n 915 redraw screen with current line at bottom of window 916 .RE 917 918 .sp 919 .ne 2 920 .na 921 \fBz.\fICR\fR\fR 922 .ad 923 .RS 16n 924 redraw screen with current line at center of window 925 .RE 926 927 .sp 928 .ne 2 929 .na 930 \fB/\fIpat\fR/z\(mi\fICR\fR\fR 931 .ad 932 .RS 16n 933 move \fIpat\fR line to bottom of window 934 .RE 935 936 .sp 937 .ne 2 938 .na 939 \fBz\fIn\fR.\fICR\fR\fR 940 .ad 941 .RS 16n 942 use \fIn\fR\(miline window 943 .RE 944 945 .sp 946 .ne 2 947 .na 948 \fB^E\fR 949 .ad 950 .RS 16n 951 scroll window down one line 952 .RE 953 954 .sp 955 .ne 2 956 .na 957 \fB^Y\fR 958 .ad 959 .RS 16n 960 scroll window up one line 961 .RE 962 963 .SS "Marking and Returning" 964 .ne 2 965 .na 966 \fB\(ga\(ga\fR 967 .ad 968 .RS 12n 969 move cursor to previous context 970 .RE 971 972 .sp 973 .ne 2 974 .na 975 \fBa\'a\'\fR 976 .ad 977 .RS 12n 978 move cursor to first non-white space in line 979 .RE 980 981 .sp 982 .ne 2 983 .na 984 \fBm\fIx\fR\fR 985 .ad 986 .RS 12n 987 mark current position with the \fBASCII\fR lower-case letter \fIx\fR 988 .RE 989 990 .sp 991 .ne 2 992 .na 993 \fB\(ga\fIx\fR\fR 994 .ad 995 .RS 12n 996 move cursor to mark \fIx\fR 997 .RE 998 999 .sp 1000 .ne 2 1001 .na 1002 \fBa\'\fIx\fR\fR 1003 .ad 1004 .RS 12n 1005 move cursor to first non-white space in line marked by \fIx\fR 1006 .RE 1007 1008 .SS "Line Positioning" 1009 .ne 2 1010 .na 1011 \fBH\fR 1012 .ad 1013 .RS 14n 1014 top line on screen 1015 .RE 1016 1017 .sp 1018 .ne 2 1019 .na 1020 \fBL\fR 1021 .ad 1022 .RS 14n 1023 last line on screen 1024 .RE 1025 1026 .sp 1027 .ne 2 1028 .na 1029 \fBM\fR 1030 .ad 1031 .RS 14n 1032 middle line on screen 1033 .RE 1034 1035 .sp 1036 .ne 2 1037 .na 1038 \fB+\fR 1039 .ad 1040 .RS 14n 1041 next line, at first non-white space character 1042 .RE 1043 1044 .sp 1045 .ne 2 1046 .na 1047 \fB\(mi\fR 1048 .ad 1049 .RS 14n 1050 previous line, at first non-white space character 1051 .RE 1052 1053 .sp 1054 .ne 2 1055 .na 1056 \fB\fICR\fR\fR 1057 .ad 1058 .RS 14n 1059 return, same as \fB+\fR 1060 .RE 1061 1062 .sp 1063 .ne 2 1064 .na 1065 \fB\fBdown-arrow\fR\fR 1066 .ad 1067 .br 1068 .na 1069 \fBor \fBj\fR\fR 1070 .ad 1071 .RS 14n 1072 next line, same column 1073 .RE 1074 1075 .sp 1076 .ne 2 1077 .na 1078 \fB\fBup-arrow\fR\fR 1079 .ad 1080 .br 1081 .na 1082 \fBor \fBk\fR\fR 1083 .ad 1084 .RS 14n 1085 previous line, same column 1086 .RE 1087 1088 .SS "Character Positioning" 1089 .ne 2 1090 .na 1091 \fB^\fR 1092 .ad 1093 .RS 13n 1094 first non-white space character 1095 .RE 1096 1097 .sp 1098 .ne 2 1099 .na 1100 \fB0\fR 1101 .ad 1102 .RS 13n 1103 beginning of line 1104 .RE 1105 1106 .sp 1107 .ne 2 1108 .na 1109 \fB$\fR 1110 .ad 1111 .RS 13n 1112 end of line 1113 .RE 1114 1115 .sp 1116 .ne 2 1117 .na 1118 \fB\fBl\fR or \fB\(->\fR\fR 1119 .ad 1120 .RS 13n 1121 forward 1122 .RE 1123 1124 .sp 1125 .ne 2 1126 .na 1127 \fB\fBh\fR or \fB\(<-\fR\fR 1128 .ad 1129 .RS 13n 1130 backward 1131 .RE 1132 1133 .sp 1134 .ne 2 1135 .na 1136 \fB^H\fR 1137 .ad 1138 .RS 13n 1139 same as \fB\(<-\fR (backspace) 1140 .RE 1141 1142 .sp 1143 .ne 2 1144 .na 1145 \fBspace\fR 1146 .ad 1147 .RS 13n 1148 same as \fB\(->\fR (space bar) 1149 .RE 1150 1151 .sp 1152 .ne 2 1153 .na 1154 \fBf\fIx\fR\fR 1155 .ad 1156 .RS 13n 1157 find next \fIx\fR 1158 .RE 1159 1160 .sp 1161 .ne 2 1162 .na 1163 \fBF\fIx\fR\fR 1164 .ad 1165 .RS 13n 1166 find previous \fIx\fR 1167 .RE 1168 1169 .sp 1170 .ne 2 1171 .na 1172 \fBt\fIx\fR\fR 1173 .ad 1174 .RS 13n 1175 move to character following the next \fIx\fR 1176 .RE 1177 1178 .sp 1179 .ne 2 1180 .na 1181 \fBT\fIx\fR\fR 1182 .ad 1183 .RS 13n 1184 move to character following the previous \fIx\fR 1185 .RE 1186 1187 .sp 1188 .ne 2 1189 .na 1190 \fB;\fR 1191 .ad 1192 .RS 13n 1193 repeat last \fBf\fR, \fBF\fR, \fBt\fR, or \fBT\fR 1194 .RE 1195 1196 .sp 1197 .ne 2 1198 .na 1199 \fB,\fR 1200 .ad 1201 .RS 13n 1202 repeat inverse of last \fBf\fR, \fBF\fR, \fBt\fR, or \fBT\fR 1203 .RE 1204 1205 .sp 1206 .ne 2 1207 .na 1208 \fB\fIn\fR|\fR 1209 .ad 1210 .RS 13n 1211 move to column \fIn\fR 1212 .RE 1213 1214 .sp 1215 .ne 2 1216 .na 1217 \fB%\fR 1218 .ad 1219 .RS 13n 1220 find matching \fB( )\fR or \fB{ }\fR 1221 .RE 1222 1223 .SS "Words, Sentences, Paragraphs" 1224 .ne 2 1225 .na 1226 \fBw\fR 1227 .ad 1228 .RS 5n 1229 forward a word 1230 .RE 1231 1232 .sp 1233 .ne 2 1234 .na 1235 \fBb\fR 1236 .ad 1237 .RS 5n 1238 back a word 1239 .RE 1240 1241 .sp 1242 .ne 2 1243 .na 1244 \fBe\fR 1245 .ad 1246 .RS 5n 1247 end of word 1248 .RE 1249 1250 .sp 1251 .ne 2 1252 .na 1253 \fB)\fR 1254 .ad 1255 .RS 5n 1256 to next sentence 1257 .RE 1258 1259 .sp 1260 .ne 2 1261 .na 1262 \fB}\fR 1263 .ad 1264 .RS 5n 1265 to next paragraph 1266 .RE 1267 1268 .sp 1269 .ne 2 1270 .na 1271 \fB(\fR 1272 .ad 1273 .RS 5n 1274 back a sentence 1275 .RE 1276 1277 .sp 1278 .ne 2 1279 .na 1280 \fB{\fR 1281 .ad 1282 .RS 5n 1283 back a paragraph 1284 .RE 1285 1286 .sp 1287 .ne 2 1288 .na 1289 \fBW\fR 1290 .ad 1291 .RS 5n 1292 forward a blank-delimited word 1293 .RE 1294 1295 .sp 1296 .ne 2 1297 .na 1298 \fBB\fR 1299 .ad 1300 .RS 5n 1301 back a blank-delimited word 1302 .RE 1303 1304 .sp 1305 .ne 2 1306 .na 1307 \fBE\fR 1308 .ad 1309 .RS 5n 1310 end of a blank-delimited word 1311 .RE 1312 1313 .SS "Corrections During Insert" 1314 .ne 2 1315 .na 1316 \fB^H\fR 1317 .ad 1318 .RS 16n 1319 erase last character (backspace) 1320 .RE 1321 1322 .sp 1323 .ne 2 1324 .na 1325 \fB^W\fR 1326 .ad 1327 .RS 16n 1328 erase last word 1329 .RE 1330 1331 .sp 1332 .ne 2 1333 .na 1334 \fBerase\fR 1335 .ad 1336 .RS 16n 1337 your erase character, same as \fB^H\fR (backspace) 1338 .RE 1339 1340 .sp 1341 .ne 2 1342 .na 1343 \fBkill\fR 1344 .ad 1345 .RS 16n 1346 your kill character, erase this line of input 1347 .RE 1348 1349 .sp 1350 .ne 2 1351 .na 1352 \fB\e\fR 1353 .ad 1354 .RS 16n 1355 quotes your erase and kill characters 1356 .RE 1357 1358 .sp 1359 .ne 2 1360 .na 1361 \fB\fIESC\fR\fR 1362 .ad 1363 .RS 16n 1364 ends insertion, back to command mode 1365 .RE 1366 1367 .sp 1368 .ne 2 1369 .na 1370 \fBControl\(miC\fR 1371 .ad 1372 .RS 16n 1373 interrupt, suspends insert mode 1374 .RE 1375 1376 .sp 1377 .ne 2 1378 .na 1379 \fB^D\fR 1380 .ad 1381 .RS 16n 1382 backtab one character; reset left margin of \fIautoindent\fR 1383 .RE 1384 1385 .sp 1386 .ne 2 1387 .na 1388 \fB^^D\fR 1389 .ad 1390 .RS 16n 1391 caret (\fB^\fR) followed by control-d (\fB^D\fR); backtab to beginning of line; 1392 do not reset left margin of \fIautoindent\fR 1393 .RE 1394 1395 .sp 1396 .ne 2 1397 .na 1398 \fB0^D\fR 1399 .ad 1400 .RS 16n 1401 backtab to beginning of line; reset left margin of \fIautoindent\fR 1402 .RE 1403 1404 .sp 1405 .ne 2 1406 .na 1407 \fB^V\fR 1408 .ad 1409 .RS 16n 1410 quote non-printable character 1411 .RE 1412 1413 .SS "Insert and Replace" 1414 .ne 2 1415 .na 1416 \fBa\fR 1417 .ad 1418 .RS 12n 1419 append after cursor 1420 .RE 1421 1422 .sp 1423 .ne 2 1424 .na 1425 \fBA\fR 1426 .ad 1427 .RS 12n 1428 append at end of line 1429 .RE 1430 1431 .sp 1432 .ne 2 1433 .na 1434 \fBi\fR 1435 .ad 1436 .RS 12n 1437 insert before cursor 1438 .RE 1439 1440 .sp 1441 .ne 2 1442 .na 1443 \fBI\fR 1444 .ad 1445 .RS 12n 1446 insert before first non-blank 1447 .RE 1448 1449 .sp 1450 .ne 2 1451 .na 1452 \fBo\fR 1453 .ad 1454 .RS 12n 1455 open line below 1456 .RE 1457 1458 .sp 1459 .ne 2 1460 .na 1461 \fBO\fR 1462 .ad 1463 .RS 12n 1464 open line above 1465 .RE 1466 1467 .sp 1468 .ne 2 1469 .na 1470 \fBr\fIx\fR\fR 1471 .ad 1472 .RS 12n 1473 replace single character with \fIx\fR 1474 .RE 1475 1476 .sp 1477 .ne 2 1478 .na 1479 \fBR\fItext\fR\fIESC\fR\fR 1480 .ad 1481 .RS 12n 1482 replace characters 1483 .RE 1484 1485 .SS "Operators" 1486 .LP 1487 Operators are followed by a cursor motion and affect all text that would have 1488 been moved over. For example, since \fBw\fR moves over a word, \fBdw\fR deletes 1489 the word that would be moved over. Double the operator, for example \fBdd\fR, 1490 to affect whole lines. 1491 .sp 1492 .ne 2 1493 .na 1494 \fBd\fR 1495 .ad 1496 .RS 5n 1497 delete 1498 .RE 1499 1500 .sp 1501 .ne 2 1502 .na 1503 \fBc\fR 1504 .ad 1505 .RS 5n 1506 change 1507 .RE 1508 1509 .sp 1510 .ne 2 1511 .na 1512 \fBy\fR 1513 .ad 1514 .RS 5n 1515 yank lines to buffer 1516 .RE 1517 1518 .sp 1519 .ne 2 1520 .na 1521 \fB<\fR 1522 .ad 1523 .RS 5n 1524 left shift 1525 .RE 1526 1527 .sp 1528 .ne 2 1529 .na 1530 \fB>\fR 1531 .ad 1532 .RS 5n 1533 right shift 1534 .RE 1535 1536 .sp 1537 .ne 2 1538 .na 1539 \fB!\fR 1540 .ad 1541 .RS 5n 1542 filter through command 1543 .RE 1544 1545 .SS "Miscellaneous Operations" 1546 .ne 2 1547 .na 1548 \fBC\fR 1549 .ad 1550 .RS 5n 1551 change rest of line (\fBc$\fR) 1552 .RE 1553 1554 .sp 1555 .ne 2 1556 .na 1557 \fBD\fR 1558 .ad 1559 .RS 5n 1560 delete rest of line (\fBd$\fR) 1561 .RE 1562 1563 .sp 1564 .ne 2 1565 .na 1566 \fBs\fR 1567 .ad 1568 .RS 5n 1569 substitute characters (\fBcl\fR) 1570 .RE 1571 1572 .sp 1573 .ne 2 1574 .na 1575 \fBS\fR 1576 .ad 1577 .RS 5n 1578 substitute lines (\fBcc\fR) 1579 .RE 1580 1581 .sp 1582 .ne 2 1583 .na 1584 \fBJ\fR 1585 .ad 1586 .RS 5n 1587 join lines 1588 .RE 1589 1590 .sp 1591 .ne 2 1592 .na 1593 \fBx\fR 1594 .ad 1595 .RS 5n 1596 delete characters (\fBdl\fR) 1597 .RE 1598 1599 .sp 1600 .ne 2 1601 .na 1602 \fBX\fR 1603 .ad 1604 .RS 5n 1605 delete characters before cursor \fBdh\fR) 1606 .RE 1607 1608 .sp 1609 .ne 2 1610 .na 1611 \fBY\fR 1612 .ad 1613 .RS 5n 1614 yank lines (\fByy\fR) 1615 .RE 1616 1617 .SS "Yank and Put" 1618 .LP 1619 Put inserts the text most recently deleted or yanked; however, if a buffer is 1620 named (using the \fBASCII\fR lower-case letters \fBa\fR - \fBz\fR), the text in 1621 that buffer is put instead. 1622 .sp 1623 .ne 2 1624 .na 1625 \fB3yy\fR 1626 .ad 1627 .RS 7n 1628 yank 3 lines 1629 .RE 1630 1631 .sp 1632 .ne 2 1633 .na 1634 \fB3yl\fR 1635 .ad 1636 .RS 7n 1637 yank 3 characters 1638 .RE 1639 1640 .sp 1641 .ne 2 1642 .na 1643 \fBp\fR 1644 .ad 1645 .RS 7n 1646 put back text after cursor 1647 .RE 1648 1649 .sp 1650 .ne 2 1651 .na 1652 \fBP\fR 1653 .ad 1654 .RS 7n 1655 put back text before cursor 1656 .RE 1657 1658 .sp 1659 .ne 2 1660 .na 1661 \fB\fI"x\fRp\fR 1662 .ad 1663 .RS 7n 1664 put from buffer \fIx\fR 1665 .RE 1666 1667 .sp 1668 .ne 2 1669 .na 1670 \fB"\fIx\fRy\fR 1671 .ad 1672 .RS 7n 1673 yank to buffer \fIx\fR 1674 .RE 1675 1676 .sp 1677 .ne 2 1678 .na 1679 \fB"\fIx\fRd\fR 1680 .ad 1681 .RS 7n 1682 delete into buffer \fIx\fR 1683 .RE 1684 1685 .SS "Undo, Redo, Retrieve" 1686 .ne 2 1687 .na 1688 \fBu\fR 1689 .ad 1690 .RS 7n 1691 undo last change 1692 .RE 1693 1694 .sp 1695 .ne 2 1696 .na 1697 \fBU\fR 1698 .ad 1699 .RS 7n 1700 restore current line 1701 .RE 1702 1703 .sp 1704 .ne 2 1705 .na 1706 \fB\&.\fR 1707 .ad 1708 .RS 7n 1709 repeat last change 1710 .RE 1711 1712 .sp 1713 .ne 2 1714 .na 1715 \fB"\fId\fRp\fR 1716 .ad 1717 .RS 7n 1718 retrieve \fId\fR'th last delete 1719 .RE 1720 1721 .SH USAGE 1722 .LP 1723 See \fBlargefile\fR(5) for the description of the behavior of \fBvi\fR and 1724 \fBview\fR when encountering files greater than or equal to 2 Gbyte ( 2^31 1725 bytes). 1726 .SH ENVIRONMENT VARIABLES 1727 .LP 1728 See \fBenviron\fR(5) for descriptions of the following environment variables 1729 that affect the execution of \fBvi\fR: \fBLANG\fR, \fBLC_ALL\fR, 1730 \fBLC_COLLATE\fR, \fBLC_CTYPE\fR, \fBLC_TIME\fR, \fBLC_MESSAGES\fR, 1731 \fBNLSPATH\fR, \fBPATH\fR, \fBSHELL\fR, and \fBTERM\fR. 1732 .sp 1733 .ne 2 1734 .na 1735 \fB\fBCOLUMNS\fR\fR 1736 .ad 1737 .RS 11n 1738 Override the system-selected horizontal screen size. 1739 .RE 1740 1741 .sp 1742 .ne 2 1743 .na 1744 \fB\fBEXINIT\fR\fR 1745 .ad 1746 .RS 11n 1747 Determine a list of \fBex\fR commands that are executed on editor start-up, 1748 before reading the first file. The list can contain multiple commands by 1749 separating them using a vertical-line (\fB|\fR) character. 1750 .RE 1751 1752 .sp 1753 .ne 2 1754 .na 1755 \fB\fBLINES\fR\fR 1756 .ad 1757 .RS 11n 1758 Override the system-selected vertical screen size, used as the number of lines 1759 in a screenful and the vertical screen size in visual mode. 1760 .RE 1761 1762 .SH FILES 1763 .ne 2 1764 .na 1765 \fB\fB/var/tmp\fR\fR 1766 .ad 1767 .sp .6 1768 .RS 4n 1769 default directory where temporary work files are placed; it can be changed 1770 using the \fBdirectory\fR option (see the \fBex\fR(1) command) 1771 .RE 1772 1773 .sp 1774 .ne 2 1775 .na 1776 \fB\fB/usr/share/lib/terminfo/?/*\fR\fR 1777 .ad 1778 .sp .6 1779 .RS 4n 1780 compiled terminal description database 1781 .RE 1782 1783 .sp 1784 .ne 2 1785 .na 1786 \fB\fB/usr/lib/.COREterm/?/*\fR\fR 1787 .ad 1788 .sp .6 1789 .RS 4n 1790 subset of compiled terminal description database 1791 .RE 1792 1793 .SH ATTRIBUTES 1794 .LP 1795 See \fBattributes\fR(5) for descriptions of the following attributes: 1796 .SS "/usr/bin/vi, /usr/bin/view, /usr/bin/vedit" 1797 .TS 1798 box; 1799 c | c 1800 l | l . 1801 ATTRIBUTE TYPE ATTRIBUTE VALUE 1802 _ 1803 CSI Not enabled 1804 .TE 1805 1806 .SS "/usr/xpg4/bin/vi, /usr/xpg4/bin/view, /usr/xpg4/bin/vedit" 1807 .TS 1808 box; 1809 c | c 1810 l | l . 1811 ATTRIBUTE TYPE ATTRIBUTE VALUE 1812 _ 1813 CSI Enabled 1814 _ 1815 Interface Stability Standard 1816 .TE 1817 1818 .SS "/usr/xpg6/bin/vi, /usr/xpg6/bin/view, /usr/xpg6/bin/vedit" 1819 .TS 1820 box; 1821 c | c 1822 l | l . 1823 ATTRIBUTE TYPE ATTRIBUTE VALUE 1824 _ 1825 CSI Enabled 1826 _ 1827 Interface Stability Standard 1828 .TE 1829 1830 .SH SEE ALSO 1831 .LP 1832 \fBIntro\fR(1), \fBctags\fR(1), \fBed\fR(1), \fBedit\fR(1), \fBex\fR(1), 1833 \fBattributes\fR(5), \fBenviron\fR(5), \fBlargefile\fR(5), \fBstandards\fR(5) 1834 .sp 1835 .LP 1836 \fISolaris Advanced User\&'s Guide\fR 1837 .SH AUTHOR 1838 .LP 1839 \fBvi\fR and \fBex\fR were developed by The University of California, Berkeley 1840 California, Computer Science Division, Department of Electrical Engineering and 1841 Computer Science. 1842 .SH NOTES 1843 .LP 1844 Two options, although they continue to be supported, have been replaced in the 1845 documentation by options that follow the Command Syntax Standard (see 1846 \fBIntro\fR(1)). An \fB-r\fR option that is not followed with an 1847 option-argument has been replaced by \fB-L\fR and \fB+\fR\fBcommand\fR has been 1848 replaced by \fB-c\fR \fBcommand\fR. 1849 .sp 1850 .LP 1851 The message \fBfile too large to recover with\fR \fB-r\fR \fBoption\fR, which 1852 is seen when a file is loaded, indicates that the file can be edited and saved 1853 successfully, but if the editing session is lost, recovery of the file with the 1854 \fB-r\fR option is not possible. 1855 .sp 1856 .LP 1857 The editing environment defaults to certain configuration options. When an 1858 editing session is initiated, \fBvi\fR attempts to read the \fBEXINIT\fR 1859 environment variable. If it exists, the editor uses the values defined in 1860 \fBEXINIT\fR; otherwise the values set in \fB$HOME/.exrc\fR are used. If 1861 \fB$HOME/.exrc\fR does not exist, the default values are used. 1862 .sp 1863 .LP 1864 To use a copy of \fB\&.exrc\fR located in the current directory other than 1865 \fB$HOME\fR, set the \fIexrc\fR option in \fBEXINIT\fR or \fB$HOME/.exrc\fR. 1866 Options set in \fBEXINIT\fR can be turned off in a local \fB\&.exrc\fR only if 1867 \fIexrc\fR is set in \fBEXINIT\fR or \fB$HOME/.exrc\fR. In order to be used, 1868 \fI\&.exrc\fR in \fB$HOME\fR or the current directory must fulfill these 1869 conditions: 1870 .RS +4 1871 .TP 1872 .ie t \(bu 1873 .el o 1874 It must exist. 1875 .RE 1876 .RS +4 1877 .TP 1878 .ie t \(bu 1879 .el o 1880 It must be owned by the same userid as the real userid of the process, or the 1881 process has appropriate privileges. 1882 .RE 1883 .RS +4 1884 .TP 1885 .ie t \(bu 1886 .el o 1887 It is not writable by anyone other than the owner. 1888 .RE 1889 .sp 1890 .LP 1891 Tampering with entries in \fB/usr/share/lib/terminfo/?/*\fR or 1892 \fB/usr/share/lib/terminfo/?/*\fR (for example, changing or removing an entry) 1893 can affect programs such as \fBvi\fR that expect the entry to be present and 1894 correct. In particular, removing the "dumb" terminal can cause unexpected 1895 problems. 1896 .sp 1897 .LP 1898 Software tabs using \fB^T\fR work only immediately after the \fIautoindent\fR. 1899 .sp 1900 .LP 1901 Left and right shifts on intelligent terminals do not make use of insert and 1902 delete character operations in the terminal. 1903 .sp 1904 .LP 1905 Loading an alternate \fBmalloc()\fR library using the environment variable 1906 \fBLD_PRELOAD\fR can cause problems for \fB/usr/bin/vi\fR. 1907 .sp 1908 .LP 1909 The \fBvi\fR utility currently has the following limitations: 1910 .RS +4 1911 .TP 1912 1. 1913 Lines, including the trailing NEWLINE character, can contain no more than 1914 4096 bytes. 1915 .sp 1916 If a longer line is found, \fBLine too long\fR is displayed in the status line. 1917 .RE 1918 .RS +4 1919 .TP 1920 2. 1921 The editor's temporary work file can be no larger than 128Mb. 1922 .sp 1923 If a larger temporary file is needed, \fBTmp file too large\fR is displayed in 1924 the status line. 1925 .RE