1 VI(1HAS) User Commands VI(1HAS)
2
3
4
5 NAME
6 vi, view, vedit - screen-oriented (visual) display editor based on ex
7
8 SYNOPSIS
9 /usr/bin/vi [-| -s] [-l] [-L] [-R] [-r [filename]] [-S]
10 [-t tag] [-v] [-V] [-x] [-wn] [-C]
11 [+command | -c command] filename...
12
13
14 /usr/bin/view [-| -s] [-l] [-L] [-R] [-r [filename]] [-S]
15 [-t tag] [-v] [-V] [-x] [-wn] [-C]
16 [+command | -c command] filename...
17
18
19 /usr/bin/vedit [-| -s] [-l] [-L] [-R] [-r [filename]] [-S]
20 [-t tag] [-v] [-V] [-x] [-wn] [-C]
21 [+command | -c command] filename...
22
23
24 /usr/xpg4/bin/vi [-| -s] [-l] [-L] [-R] [-r [filename]]
25 [-S] [-t tag] [-v] [-V] [-x] [-wn] [-C]
26 [+command | -c command] filename...
27
28
29 /usr/xpg4/bin/view [-| -s] [-l] [-L] [-R] [-r [filename]]
30 [-S] [-t tag] [-v] [-V] [-x] [-wn] [-C]
31 [+command | -c command] filename...
32
33
34 /usr/xpg4/bin/vedit [-| -s] [-l] [-L] [-R] [-r [filename]]
35 [-S] [-t tag] [-v] [-V] [-x] [-wn] [-C]
36 [+command | -c command] filename...
37
38
39 /usr/xpg6/bin/vi [-| -s] [-l] [-L] [-R] [-r [filename]]
40 [-S] [-t tag] [-v] [-V] [-x] [-wn] [-C]
41 [+command | -c command] filename...
42
43
44 /usr/xpg6/bin/view [-| -s] [-l] [-L] [-R] [-r [filename]]
45 [-S] [-t tag] [-v] [-V] [-x] [-wn] [-C]
46 [+command | -c command] filename...
47
48
49 /usr/xpg6/bin/vedit [-| -s] [-l] [-L] [-R] [-r [filename]]
50 [-S] [-t tag] [-v] [-V] [-x] [-wn] [-C]
51 [+command | -c command] filename...
52
53
54 DESCRIPTION
55 The vi (visual) utility is a display-oriented text editor based on an
56 underlying line editor ex. It is possible to use the command mode of ex
57 from within vi and to use the command mode of vi from within ex. The
58 visual commands are described on this manual page; how to set options
59 (like automatically numbering lines and automatically starting a new
60 output line when you type carriage return) and all ex line editor
61 commands are described on the ex(1) manual page.
62
63
64 When using vi, changes you make to the file are reflected in what you
65 see on your terminal screen. The position of the cursor on the screen
66 indicates the position within the file.
67
68
69 The view invocation is the same as vi except that the readonly flag is
70 set.
71
72
73 The vedit invocation is intended for beginners. It is the same as vi
74 except that the report flag is set to 1, the showmode and novice flags
75 are set, and magic is turned off. These defaults make it easier to
76 learn how to use vi.
77
78 OPTIONS
79 The following options are supported:
80
81 Invocation Options
82 The following invocation options are interpreted by vi (previously
83 documented options are discussed under NOTES):
84
85 - | -s
86 Suppresses all interactive user feedback. This
87 is useful when processing editor scripts.
88
89
90 -C
91 Encryption option. Same as the -x option,
92 except that vi simulates the C command of ex.
93 The C command is like the X command of ex,
94 except that all text read in is assumed to
95 have been encrypted.
96
97
98 -l
99 Sets up for editing LISP programs.
100
101
102 -L
103 Lists the name of all files saved as the
104 result of an editor or system crash.
105
106
107 -r filename
108 Edits filename after an editor or system
109 crash. (Recovers the version of filename that
110 was in the buffer when the crash occurred.)
111
112
113 -R
114 Readonly mode. The readonly flag is set,
115 preventing accidental overwriting of the file.
116
117
118 -S
119 This option is used in conjunction with the -t
120 tag option to tell vi that the tags file can
121 not be sorted and that, if the binary search
122 (which relies on a sorted tags file) for tag
123 fails to find it, the much slower linear
124 search should also be done. Since the linear
125 search is slow, users of large tags files
126 should ensure that the tags files are sorted
127 rather than use this flag. Creation of tags
128 files normally produces sorted tags files.
129 See ctags(1) for more information on tags
130 files.
131
132
133 -t tag
134 Edits the file containing tag and position the
135 editor at its definition. It is an error to
136 specify more than one -t option.
137
138
139 -v
140 Starts up in display editing state, using vi.
141 You can achieve the same effect by typing the
142 vi command itself.
143
144
145 -V
146 Verbose. When ex commands are read by means of
147 standard input, the input is echoed to
148 standard error. This can be useful when
149 processing ex commands within shell scripts.
150
151
152 -wn
153 Sets the default window size to n. This is
154 useful when using the editor over a slow speed
155 line.
156
157
158 -x
159 Encryption option. When used, vi simulates the
160 X command of ex and prompts the user for a
161 key. This key is used to encrypt and decrypt
162 text using the algorithm of the crypt command.
163 The X command makes an educated guess to
164 determine whether text read in is encrypted or
165 not. The temporary buffer file is encrypted
166 also, using a transformed version of the key
167 typed in for the -x option. If an empty
168 encryption key is entered (that is, if the
169 return key is pressed right after the prompt),
170 the file is not encrypted. This is a good way
171 to decrypt a file erroneously encrypted with a
172 mistyped encryption key, such as a backspace
173 or undo key.
174
175
176 -command | -c command
177 Begins editing by executing the specified
178 editor command (usually a search or
179 positioning command).
180
181
182 /usr/xpg4/bin/vi and /usr/xpg6/bin/vi
183 If both the -t tag and the -c command options are given, the -t tag
184 option is processed first. That is, the file containing tag is selected
185 by -t and then the command is executed.
186
187 OPERANDS
188 The following operands are supported:
189
190 filename
191 A file to be edited.
192
193
194 COMMAND SUMMARY
195 The vi command modes are summarized in this section.
196
197 vi Modes
198 Command
199 Normal and initial mode. Other modes return to command
200 mode upon completion. ESC (escape) is used to cancel a
201 partial command.
202
203
204 Input
205 Entered by setting any of the following options:
206
207 a A i I o O c C s S R
208
209
210 Arbitrary text can then be entered. Input mode is normally
211 terminated with the ESC character, or, abnormally, with an
212 interrupt.
213
214
215 Last line
216 Reading input for : / ? or !. Terminate by typing a
217 carriage return. An interrupt cancels termination.
218
219
220 Sample Commands
221 In the descriptions, CR stands for carriage return and ESC stands for
222 the escape key.
223
224 <-, ->
225 down-arrow
226 up-arrow
227 arrow keys move the cursor
228
229
230 h j k l
231 same as arrow keys
232
233
234 itextESC
235 insert text
236
237
238 cwnewESC
239 change word to new
240
241
242 easESC
243 pluralize word (end of word; append s; escape from input
244 state)
245
246
247 x
248 delete a character
249
250
251 dw
252 delete a word
253
254
255 dd
256 delete a line
257
258
259 3dd
260 delete 3 lines
261
262
263 u
264 undo previous change
265
266
267 ZZ
268 exit vi, saving changes
269
270
271 :q!CR
272 quit, discarding changes
273
274
275 /textCR
276 search for text
277
278
279 ^U ^D
280 scroll up or down
281
282
283 :cmdCR
284 any ex or ed command
285
286
287 Counts Before vi Commands
288 Numbers can be typed as a prefix to some commands. They are interpreted
289 in one of these ways:
290
291 line/column number
292 z G |
293
294
295 scroll amount
296 ^D ^U
297
298
299 repeat effect
300 most of the rest
301
302
303 Interrupting, Canceling
304 ESC
305 end insert or incomplete command
306
307
308 DEL
309 (delete or rubout) interrupts
310
311
312 File Manipulation
313 ZZ
314 if file modified, write and exit; otherwise, exit
315
316
317 :wCR
318 write back changes
319
320
321 :w!CR
322 forced write, if permission originally not valid
323
324
325 :qCR
326 quit
327
328
329 :q!CR
330 quit, discard changes
331
332
333 :e nameCR
334 edit file name
335
336
337 :e!CR
338 reedit, discard changes
339
340
341 :e + nameCR
342 edit, starting at end
343
344
345 :e +nCR
346 edit, starting at line n
347
348
349 :e #CR
350 edit alternate file
351
352
353 :e! #CR
354 edit alternate file, discard changes
355
356
357 :w nameCR
358 write file name
359
360
361 :w! nameCR
362 overwrite file name
363
364
365 :shCR
366 run shell, then return
367
368
369 :!cmdCR
370 run cmd, then return
371
372
373 :nCR
374 edit next file in arglist
375
376
377 :n argsCR
378 specify new arglist
379
380
381 ^G
382 show current file and line
383
384
385 :ta tagCR
386 position cursor to tag
387
388
389
390 In general, any ex or ed command (such as substitute or global) can be
391 typed, preceded by a colon and followed by a carriage return.
392
393 Positioning Within a File
394 F
395 forward screen
396
397
398 ^B
399 backward screen
400
401
402 ^D
403 scroll down half screen
404
405
406 ^U
407 scroll up half screen
408
409
410 nG
411 go to the beginning of the specified line (end default),
412 where n is a line number
413
414
415 /pat
416 next line matching pat
417
418
419 ?pat
420 previous line matching pat
421
422
423 n
424 repeat last / or ? command
425
426
427 N
428 reverse last / or ? command
429
430
431 /pat/+n
432 nth line after pat
433
434
435 ?pat?-n
436 nth line before pat
437
438
439 ]]
440 next section/function
441
442
443 [[
444 previous section/function
445
446
447 (
448 beginning of sentence
449
450
451 )
452 end of sentence
453
454
455 {
456 beginning of paragraph
457
458
459 }
460 end of paragraph
461
462
463 %
464 find matching ( ) or { }
465
466
467 Adjusting the Screen
468 ^L
469 clear and redraw window
470
471
472 ^R
473 clear and redraw window if ^L is -> key
474
475
476 zCR
477 redraw screen with current line at top of window
478
479
480 z-CR
481 redraw screen with current line at bottom of window
482
483
484 z.CR
485 redraw screen with current line at center of window
486
487
488 /pat/z-CR
489 move pat line to bottom of window
490
491
492 zn.CR
493 use n-line window
494
495
496 ^E
497 scroll window down one line
498
499
500 ^Y
501 scroll window up one line
502
503
504 Marking and Returning
505 ``
506 move cursor to previous context
507
508
509 a'a'
510 move cursor to first non-white space in line
511
512
513 mx
514 mark current position with the ASCII lower-case letter x
515
516
517 `x
518 move cursor to mark x
519
520
521 a'x
522 move cursor to first non-white space in line marked by x
523
524
525 Line Positioning
526 H
527 top line on screen
528
529
530 L
531 last line on screen
532
533
534 M
535 middle line on screen
536
537
538 +
539 next line, at first non-white space character
540
541
542 -
543 previous line, at first non-white space character
544
545
546 CR
547 return, same as +
548
549
550 down-arrow
551 or j
552 next line, same column
553
554
555 up-arrow
556 or k
557 previous line, same column
558
559
560 Character Positioning
561 ^
562 first non-white space character
563
564
565 0
566 beginning of line
567
568
569 $
570 end of line
571
572
573 l or ->
574 forward
575
576
577 h or <-
578 backward
579
580
581 ^H
582 same as <- (backspace)
583
584
585 space
586 same as -> (space bar)
587
588
589 fx
590 find next x
591
592
593 Fx
594 find previous x
595
596
597 tx
598 move to character following the next x
599
600
601 Tx
602 move to character following the previous x
603
604
605 ;
606 repeat last f, F, t, or T
607
608
609 ,
610 repeat inverse of last f, F, t, or T
611
612
613 n|
614 move to column n
615
616
617 %
618 find matching ( ) or { }
619
620
621 Words, Sentences, Paragraphs
622 w
623 forward a word
624
625
626 b
627 back a word
628
629
630 e
631 end of word
632
633
634 )
635 to next sentence
636
637
638 }
639 to next paragraph
640
641
642 (
643 back a sentence
644
645
646 {
647 back a paragraph
648
649
650 W
651 forward a blank-delimited word
652
653
654 B
655 back a blank-delimited word
656
657
658 E
659 end of a blank-delimited word
660
661
662 Corrections During Insert
663 ^H
664 erase last character (backspace)
665
666
667 ^W
668 erase last word
669
670
671 erase
672 your erase character, same as ^H (backspace)
673
674
675 kill
676 your kill character, erase this line of input
677
678
679 \
680 quotes your erase and kill characters
681
682
683 ESC
684 ends insertion, back to command mode
685
686
687 Control-C
688 interrupt, suspends insert mode
689
690
691 ^D
692 backtab one character; reset left margin of autoindent
693
694
695 ^^D
696 caret (^) followed by control-d (^D); backtab to
697 beginning of line; do not reset left margin of
698 autoindent
699
700
701 0^D
702 backtab to beginning of line; reset left margin of
703 autoindent
704
705
706 ^V
707 quote non-printable character
708
709
710 Insert and Replace
711 a
712 append after cursor
713
714
715 A
716 append at end of line
717
718
719 i
720 insert before cursor
721
722
723 I
724 insert before first non-blank
725
726
727 o
728 open line below
729
730
731 O
732 open line above
733
734
735 rx
736 replace single character with x
737
738
739 RtextESC
740 replace characters
741
742
743 Operators
744 Operators are followed by a cursor motion and affect all text that
745 would have been moved over. For example, since w moves over a word, dw
746 deletes the word that would be moved over. Double the operator, for
747 example dd, to affect whole lines.
748
749 d
750 delete
751
752
753 c
754 change
755
756
757 y
758 yank lines to buffer
759
760
761 <
762 left shift
763
764
765 >
766 right shift
767
768
769 !
770 filter through command
771
772
773 Miscellaneous Operations
774 C
775 change rest of line (c$)
776
777
778 D
779 delete rest of line (d$)
780
781
782 s
783 substitute characters (cl)
784
785
786 S
787 substitute lines (cc)
788
789
790 J
791 join lines
792
793
794 x
795 delete characters (dl)
796
797
798 X
799 delete characters before cursor dh)
800
801
802 Y
803 yank lines (yy)
804
805
806 Yank and Put
807 Put inserts the text most recently deleted or yanked; however, if a
808 buffer is named (using the ASCII lower-case letters a - z), the text in
809 that buffer is put instead.
810
811 3yy
812 yank 3 lines
813
814
815 3yl
816 yank 3 characters
817
818
819 p
820 put back text after cursor
821
822
823 P
824 put back text before cursor
825
826
827 "xp
828 put from buffer x
829
830
831 "xy
832 yank to buffer x
833
834
835 "xd
836 delete into buffer x
837
838
839 Undo, Redo, Retrieve
840 u
841 undo last change
842
843
844 U
845 restore current line
846
847
848 .
849 repeat last change
850
851
852 "dp
853 retrieve d'th last delete
854
855
856 USAGE
857 See largefile(5) for the description of the behavior of vi and view
858 when encountering files greater than or equal to 2 Gbyte ( 2^31 bytes).
859
860 ENVIRONMENT VARIABLES
861 See environ(5) for descriptions of the following environment variables
862 that affect the execution of vi: LANG, LC_ALL, LC_COLLATE, LC_CTYPE,
863 LC_TIME, LC_MESSAGES, NLSPATH, PATH, SHELL, and TERM.
864
865 COLUMNS
866 Override the system-selected horizontal screen size.
867
868
869 EXINIT
870 Determine a list of ex commands that are executed on editor
871 start-up, before reading the first file. The list can
872 contain multiple commands by separating them using a
873 vertical-line (|) character.
874
875
876 LINES
877 Override the system-selected vertical screen size, used as
878 the number of lines in a screenful and the vertical screen
879 size in visual mode.
880
881
882 FILES
883 /var/tmp
884
885 default directory where temporary work files are placed; it can be
886 changed using the directory option (see the ex(1) command)
887
888
889 /usr/share/lib/terminfo/?/*
890
891 compiled terminal description database
892
893
894 /usr/lib/.COREterm/?/*
895
896 subset of compiled terminal description database
897
898
899 ATTRIBUTES
900 See attributes(5) for descriptions of the following attributes:
901
902 /usr/bin/vi, /usr/bin/view, /usr/bin/vedit
903
904 +---------------+-----------------+
905 |ATTRIBUTE TYPE | ATTRIBUTE VALUE |
906 +---------------+-----------------+
907 |CSI | Not enabled |
908 +---------------+-----------------+
909
910 /usr/xpg4/bin/vi, /usr/xpg4/bin/view, /usr/xpg4/bin/vedit
911
912 +--------------------+-----------------+
913 | ATTRIBUTE TYPE | ATTRIBUTE VALUE |
914 +--------------------+-----------------+
915 |CSI | Enabled |
916 +--------------------+-----------------+
917 |Interface Stability | Standard |
918 +--------------------+-----------------+
919
920 /usr/xpg6/bin/vi, /usr/xpg6/bin/view, /usr/xpg6/bin/vedit
921
922 +--------------------+-----------------+
923 | ATTRIBUTE TYPE | ATTRIBUTE VALUE |
924 +--------------------+-----------------+
925 |CSI | Enabled |
926 +--------------------+-----------------+
927 |Interface Stability | Standard |
928 +--------------------+-----------------+
929
930 SEE ALSO
931 Intro(1), ctags(1), ed(1), edit(1), ex(1), attributes(5), environ(5),
932 largefile(5), standards(5)
933
934
935 Solaris Advanced User's Guide
936
937 AUTHOR
938 vi and ex were developed by The University of California, Berkeley
939 California, Computer Science Division, Department of Electrical
940 Engineering and Computer Science.
941
942 NOTES
943 Two options, although they continue to be supported, have been replaced
944 in the documentation by options that follow the Command Syntax Standard
945 (see Intro(1)). An -r option that is not followed with an option-
946 argument has been replaced by -L and +command has been replaced by -c
947 command.
948
949
950 The message file too large to recover with -r option, which is seen
951 when a file is loaded, indicates that the file can be edited and saved
952 successfully, but if the editing session is lost, recovery of the file
953 with the -r option is not possible.
954
955
956 The editing environment defaults to certain configuration options. When
957 an editing session is initiated, vi attempts to read the EXINIT
958 environment variable. If it exists, the editor uses the values defined
959 in EXINIT; otherwise the values set in $HOME/.exrc are used. If
960 $HOME/.exrc does not exist, the default values are used.
961
962
963 To use a copy of .exrc located in the current directory other than
964 $HOME, set the exrc option in EXINIT or $HOME/.exrc. Options set in
965 EXINIT can be turned off in a local .exrc only if exrc is set in EXINIT
966 or $HOME/.exrc. In order to be used, .exrc in $HOME or the current
967 directory must fulfill these conditions:
968
969 o It must exist.
970
971 o It must be owned by the same userid as the real userid of
972 the process, or the process has appropriate privileges.
973
974 o It is not writable by anyone other than the owner.
975
976
977 Tampering with entries in /usr/share/lib/terminfo/?/* or
978 /usr/share/lib/terminfo/?/* (for example, changing or removing an
979 entry) can affect programs such as vi that expect the entry to be
980 present and correct. In particular, removing the "dumb" terminal can
981 cause unexpected problems.
982
983
984 Software tabs using ^T work only immediately after the autoindent.
985
986
987 Left and right shifts on intelligent terminals do not make use of
988 insert and delete character operations in the terminal.
989
990
991 Loading an alternate malloc() library using the environment variable
992 LD_PRELOAD can cause problems for /usr/bin/vi.
993
994
995 The vi utility currently has the following limitations:
996
997 1. Lines, including the trailing NEWLINE character, can contain
998 no more than 4096 bytes.
999
1000 If a longer line is found, Line too long is displayed in the
1001 status line.
1002
1003 2. The editor's temporary work file can be no larger than
1004 128Mb.
1005
1006 If a larger temporary file is needed, Tmp file too large is
1007 displayed in the status line.
1008
1009
1010
1011 May 16, 2007 VI(1HAS)