1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
|
===============================================================================
= 欢 迎 阅 读 《 V I M 教 程 》 —— 版本 1.7 =
===============================================================================
Vim 是一个具有很多命令的功能非常强大的编辑器。限于篇幅,在本教程当中
就不详细介绍了。本教程的设计目标是讲述一些必要的基本命令,而掌握好这
些命令,您就能够很容易地将 Vim 当作一个通用编辑器来使用了。
完成本教程的内容大约需要25-30分钟,取决于您训练的时间。
注意:
每一节的命令操作将会更改本文。推荐您复制本文的一个副本,然后在副本上
进行训练(如果您是通过"vimtutor"来启动教程的,那么本文就已经是副本了)。
切记一点:本教程的设计思路是在使用中进行学习的。也就是说,您需要通过
执行命令来学习它们本身的正确用法。如果您只是阅读而不操作,那么您可能
会很快遗忘这些命令的!
好了,现在请确定您的Shift-Lock(大小写锁定键)还没有按下,然后按键盘上
的字母键 j 足够多次来移动光标,直到第一节的内容能够完全充满屏幕。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一讲第一节:移动光标
** 要移动光标,请依照说明分别按下 h、j、k、l 键。 **
^
k 提示: h 的键位于左边,每次按下就会向左移动。
< h l > l 的键位于右边,每次按下就会向右移动。
j j 键看起来很象一支尖端方向朝下的箭头。
v
1. 请随意在屏幕内移动光标,直至您觉得舒服为止。
2. 按下下行键(j),直到出现光标重复下行。
---> 现在您应该已经学会如何移动到下一讲吧。
3. 现在请使用下行键,将光标移动到第一讲第二节。
提示:如果您不敢确定您所按下的字母,请按下<ESC>键回到正常(Normal)模式。
然后再次从键盘输入您想要的命令。
提示:光标键应当也能正常工作的。但是使用hjkl键,在习惯之后您就能够更快
地在屏幕内四处移动光标。真的是这样!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一讲第二节:VIM的进入和退出
!! 特别提示:敬请阅读本一节的完整内容,然后再执行以下所讲解的命令。
1. 按<ESC>键(这是为了确保您处在正常模式)。
2. 然后输入: :q! <回车>
这种方式的退出编辑器会丢弃您进入编辑器以来所做的改动。
3. 如果您看到了命令行提示符,请输入能够带您回到本教程的命令,那就是:
vimtutor <回车>
4. 如果您自信已经牢牢记住了这些步骤的话,请从步骤1执行到步骤3退出,然
后再次进入编辑器。
提示: :q! <回车> 会丢弃您所做的任何改动。几讲之后您将学会如何保存改动到文件。
5. 将光标下移到第一讲第三节。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一讲第三节:文本编辑之删除
** 在正常(Normal)模式下,可以按下 x 键来删除光标所在位置的字符。**
1. 请将光标移动到本节中下面标记有 ---> 的那一行。
2. 为了修正输入错误,请将光标移至准备删除的字符的位置处。
3. 然后按下 x 键将错误字符删除掉。
4. 重复步骤2到步骤4,直到句子修正为止。
---> The ccow jumpedd ovverr thhe mooon.
5. 好了,该行已经修正了,下面是第一讲第四节。
特别提示:在浏览本教程时,不要强行记忆。记住一点:在使用中学习。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一讲第四节:文本编辑之插入
** 在正常模式下,可以按下 i 键来插入文本。**
1. 请将光标移动到本节中下面标记有 ---> 的第一行。
2. 为了使得第一行内容雷同于第二行,请将光标移至文本第一个准备插入字符
的位置。
3. 然后按下 i 键,接着输入必要的文本字符。
4. 每个错误修正完毕后,请按下 <ESC> 键返回正常模式。
重复步骤2至步骤4以便修正句子。
---> There is text misng this .
---> There is some text missing from this line.
5. 如果您对文本插入操作已经很满意,请接着阅读下面的第一讲第五节。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一讲第五节:文本编辑之添加
** 按 A 键以添加文本。 **
1. 移动光标到下面第一个标记有 ---> 的一行。
光标放在那一行的哪个字符上并不重要。
2. 按 A 键输入必要的添加内容。
3. 文本添加完毕后,按 <ESC> 键回到正常模式。
4. 移动光标到下面第二个标记有 ---> 的一行。重复步骤2和步骤3以改正这个句子。
---> There is some text missing from th
There is some text missing from this line.
---> There is also some text miss
There is also some text missing here.
5. 当您对添加文本操作感到满意时,请继续学习第一讲第六节。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一讲第六节:编辑文件
** 使用 :wq 以保存文件并退出。 **
特别提示:在执行以下步骤之前,请先读完整个小节!
1. 如您在第一讲第二节中所做的那样退出本教程: :q!
或者,如果您可以访问另一个终端,请在那里执行以下操作。
2. 在 shell 的提示符下输入命令: vim tutor <回车>
'vim'是启动 Vim 编辑器的命令,'tutor'是您希望编辑的文件的名字。
请使用一个可以改动的文件。
3. 使用您在前面的教程中学到的命令插入删除文本。
4. 保存改动过的文件并退出 Vim,按这些键: :wq <回车>
5. 如果您在步骤1中已经退出 vimtutor,请重启 vimtutor 移动到下面的小结一节。
6. 阅读完以上步骤,弄懂它们的意义,然后在实践中进行练习。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一讲小结
1. 光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键。
h (左移) j (下行) k (上行) l (右移)
2. 欲进入 Vim 编辑器(从命令行提示符),请输入:vim 文件名 <回车>
3. 欲退出 Vim 编辑器,请输入 <ESC> :q! <回车> 放弃所有改动。
或者输入 <ESC> :wq <回车> 保存改动。
4. 在正常模式下删除光标所在位置的字符,请按: x
5. 欲插入或添加文本,请输入:
i 输入欲插入文本 <ESC> 在光标前插入文本
A 输入欲添加文本 <ESC> 在一行后添加文本
特别提示:按下 <ESC> 键会带您回到正常模式或者撤消一个不想输入或部分完整
的命令。
好了,第一讲到此结束。下面接下来继续第二讲的内容。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲第一节:删除类命令
** 输入 dw 可以从光标处删除至一个单词的末尾。**
1. 请按下 <ESC> 键确保您处于正常模式。
2. 请将光标移动到本节中下面标记有 ---> 的那一行。
3. 请将光标移至准备要删除的单词的起始处。
4. 接着输入 dw 删除掉该单词。
特别提示:当您输入时,字母 d 会同时出现在屏幕的最后一行。Vim 在等待您输入
字母 w。如果您看到的是除 d 外的其他字符,那表明您按错了;请按下 <ESC> 键,
然后重新再来。
---> There are a some words fun that don't belong paper in this sentence.
5. 重复步骤3和步骤4,直至句子修正完毕。接着继续第二讲第二节内容。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲第二节:更多删除类命令
** 输入 d$ 从当前光标删除到行末。**
1. 请按下 <ESC> 键确保您处于正常模式。
2. 请将光标移动到本节中下面标记有 ---> 的那一行。
3. 请将光标移动到该行的尾部(也就是在第一个点号‘.’后面)。
4. 然后输入 d$ 从光标处删至当前行尾部。
---> Somebody typed the end of this line twice. end of this line twice.
5. 请继续学习第二讲第三节就知道是怎么回事了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲第三节:关于命令和对象
许多改变文本的命令都由一个操作符和一个动作构成。
使用删除操作符 d 的删除命令的格式如下:
d motion
其中:
d - 删除操作符。
motion - 操作符的操作对象(在下面列出)。
一个简短的动作列表:
w - 从当前光标当前位置直到下一个单词起始处,不包括它的第一个字符。
e - 从当前光标当前位置直到单词末尾,包括最后一个字符。
$ - 从当前光标当前位置直到当前行末。
因此输入 de 会从当前光标位置删除到单词末尾。
特别提示:
对于勇于探索者,请在正常模式下面仅按代表相应动作的键而不使用操作符,您
将看到光标的移动正如上面的对象列表所代表的一样。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲第四节:使用计数指定动作
** 在动作前输入数字会使它重复那么多次。 **
1. 移动光标到下面标记有 ---> 的一行的开始。
2. 输入 2w 使光标向前移动两个单词。
3. 输入 3e 使光标向前移动到第三个单词的末尾。
4. 输入 0 (数字零) 移动光标到行首。
5. 重复步骤2和步骤3,尝试不同的数字。
---> This is just a line with words you can move around in.
6. 请继续学习第二讲第五节。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲第五节:使用计数以删除更多
** 使用操作符时输入数字可以使它重复那么多次。 **
上面已经提到过删除操作符和动作的组合,您可以在组合中动作之前插入一个数字以
删除更多:
d number(数字) motion
1. 移动光标到下面标记有 ---> 的一行中第一个大写字母单词上。
2. 输入 d2w 以删除两个大写字母单词。
3. 重复步骤1和步骤2,使用不同的数字使得用一个命令就能删除全部相邻的大写字母
单词
---> this ABC DE line FGHI JK LMN OP of words is Q RS TUV cleaned up.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲第六节:操作整行
** 输入 dd 可以删除整一个当前行。 **
鉴于整行删除的高频度,Vi 的设计者决定要简化整行删除操作,您仅需要在同一行上
击打两次 d 就可以删除掉光标所在的整行了。
1. 请将光标移动到本节中下面的短句段落中的第二行。
2. 输入 dd 删除该行。
3. 然后移动到第四行。
4. 接着输入 2dd 删除两行。
---> 1) Roses are red,
---> 2) Mud is fun,
---> 3) Violets are blue,
---> 4) I have a car,
---> 5) Clocks tell time,
---> 6) Sugar is sweet
---> 7) And so are you.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲第七节:撤消类命令
** 输入 u 来撤消最后执行的命令,输入 U 来撤消对整行的修改。 **
1. 请将光标移动到本节中下面标记有 ---> 的那一行,并将其置于第一个错误
处。
2. 输入 x 删除第一个不想保留的字母。
3. 然后输入 u 撤消最后执行的(一次)命令。
4. 这次要使用 x 修正本行的所有错误。
5. 现在输入一个大写的 U ,恢复到该行的原始状态。
6. 接着多次输入 u 以撤消 U 以及更前的命令。
7. 然后多次输入 CTRL-R (先按下 CTRL 键不放开,接着按 R 键),这样就
可以重做被撤消的命令,也就是撤消掉撤消命令。
---> Fiix the errors oon thhis line and reeplace them witth undo.
8. 这些都是非常有用的命令。下面是第二讲的小结了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二讲小结
1. 欲从当前光标删除至下一个单词,请输入:dw
2. 欲从当前光标删除至当前行末尾,请输入:d$
3. 欲删除整行,请输入:dd
4. 欲重复一个动作,请在它前面加上一个数字:2w
5. 在正常模式下修改命令的格式是:
operator [number] motion
其中:
operator - 操作符,代表要做的事情,比如 d 代表删除
[number] - 可以附加的数字,代表动作重复的次数
motion - 动作,代表在所操作的文本上的移动,例如 w 代表单词(word),
$ 代表行末等等。
6. 欲移动光标到行首,请按数字0键:0
7. 欲撤消以前的操作,请输入:u (小写的u)
欲撤消在一行中所做的改动,请输入:U (大写的U)
欲撤消以前的撤消命令,恢复以前的操作结果,请输入:CTRL-R
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第三讲第一节:置入类命令
** 输入 p 将最后一次删除的内容置入光标之后。 **
1. 请将光标移动到本节中下面第一个标记有 ---> 的一行。
2. 输入 dd 将该行删除,这样会将该行保存到 Vim 的一个寄存器中。
3. 接着将光标移动到 c) 一行,即准备置入的位置的上方。记住:是上方哦。
4. 然后在正常模式下(<ESC>键进入)输入 p 将该行粘贴置入。
5. 重复步骤2至步骤4,将所有的行依序放置到正确的位置上。
---> d) Can you learn too?
---> b) Violets are blue,
---> c) Intelligence is learned,
---> a) Roses are red,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第三讲第二节:替换类命令
** 输入 r 和一个字符替换光标所在位置的字符。**
1. 请将光标移动到本节中下面标记有 ---> 的第一行。
2. 请移动光标到第一个出错的位置。
3. 接着输入 r 和要替换成的字符,这样就能将错误替换掉了。
4. 重复步骤2和步骤3,直到第一行已经修改完毕。
---> Whan this lime was tuoed in, someone presswd some wrojg keys!
---> When this line was typed in, someone pressed some wrong keys!
5. 然后我们继续学习第三讲第三节。
特别提示:切记您要在使用中学习,而不是在记忆中学习。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第三讲第三节:更改类命令
** 要改变文本直到一个单词的末尾,请输入 ce **
1. 请将光标移动到本节中下面标记有 ---> 的第一行。
2. 接着把光标放在单词 lubw 的字母 u 的位置那里。
3. 然后输入 cw 以及正确的单词(在本例中是输入 ine )。
4. 最后按 <ESC> 键,然后光标定位到下一个错误第一个准备更改的字母处。
5. 重复步骤3和步骤4,直到第一个句子完全雷同第二个句子。
---> This lubw has a few wptfd that mrrf changing usf the change operator.
---> This line has a few words that need changing using the change operator.
提示:请注意 ce 命令不仅仅是删除了一个单词,它也让您进入插入模式了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第三讲第四节:使用c更改更多
** 更改类操作符可以与删除中使用的同样的动作配合使用。 **
1. 更改类操作符的工作方式跟删除类是一致的。操作格式是:
c [number] motion
2. 动作参数(motion)也是一样的,比如 w 代表单词,$代表行末等等。
3. 请将光标移动到本节中下面标记有 ---> 的第一行。
4. 接着将光标移动到第一个错误处。
5. 然后输入 c$ 使得该行剩下的部分更正得同第二行一样。最后按 <ESC> 键。
---> The end of this line needs some help to make it like the second.
---> The end of this line needs to be corrected using the c$ command.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第三讲小结
1. 要重新置入已经删除的文本内容,请按小写字母 p 键。该操作可以将已删除
的文本内容置于光标之后。如果最后一次删除的是一个整行,那么该行将置
于当前光标所在行的下一行。
2. 要替换光标所在位置的字符,请输入小写的 r 和要替换掉原位置字符的新字
符即可。
3. 更改类命令允许您改变从当前光标所在位置直到动作指示的位置中间的文本。
比如输入 ce 可以替换当前光标到单词的末尾的内容;输入 c$ 可以替换当
前光标到行末的内容。
4. 更改类命令的格式是:
c [number] motion
现在我们继续学习下一讲。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第四讲第一节:定位及文件状态
** 输入 CTRL-G 显示当前编辑文件中当前光标所在行位置以及文件状态信息。
输入大写 G 则直接跳转到文件中的某一指定行。**
提示:切记要先通读本节内容,之后才可以执行以下步骤!!!
1. 按下 CTRL 键不放开然后按 g 键。我们称这个键组合为 CTRL-G。
您会看到页面最底部出现一个状态信息行,显示的内容是当前编辑的文件名
和文件中光标位置。请记住行号,它会在步骤3中用到。
提示:您也许会在屏幕的右下角看到光标位置,这会在 'ruler' 选项设置时发生
(参见 :help 'ruler')
2. 输入大写 G 可以使得当前光标直接跳转到文件最后一行。
输入 gg 可以使得当前光标直接跳转到文件第一行。
3. 输入您曾停留的行号,然后输入大写 G。这样就可以返回到您第一次按下
CTRL-G 时所在的行了。
4. 如果您觉得没问题的话,请执行步骤1至步骤3的操作进行练习。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第四讲第二节:搜索类命令
** 输入 / 加上一个字符串可以用以在当前文件中查找该字符串。**
1. 在正常模式下输入 / 字符。您此时会注意到该字符和光标都会出现在屏幕底
部,这跟 : 命令是一样的。
2. 接着输入 errroor <回车>。那个errroor就是您要查找的字符串。
3. 要查找同上一次的字符串,只需要按 n 键。要向相反方向查找同上一次的字
符串,请输入大写 N 即可。
4. 如果您想逆向查找字符串,请使用 ? 代替 / 进行。
5. 要回到您之前的位置按 CTRL-O (按住 Ctrl 键不放同时按下字母 o)。重复按可以
回退更多步。CTRL-I 会跳转到较新的位置。
---> "errroor" is not the way to spell error; errroor is an error.
提示:如果查找已经到达文件末尾,查找会自动从文件头部继续查找,除非
'wrapscan' 选项被复位。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第四讲第三节:配对括号的查找
** 输入 % 可以查找配对的括号 )、]、}。**
1. 把光标放在本节下面标记有 --> 那一行中的任何一个 (、[ 或 { 处。
2. 接着按 % 字符。
3. 此时光标的位置应当是在配对的括号处。
4. 再次按 % 就可以跳回配对的第一个括号处。
5. 移动光标到另一个 (、)、[、]、{ 或 } 处,按 % 查看其所作所为。
---> This ( is a test line with ('s, ['s ] and {'s } in it. ))
提示:在程序调试时,这个功能用来查找不配对的括号是很有用的。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第四讲第四节:替换命令
** 输入 :s/old/new/g 可以替换 old 为 new。**
1. 请将光标移动到本节中下面标记有 ---> 的那一行。
2. 输入 :s/thee/the <回车> 。请注意该命令只改变光标所在行的第一个匹配
串。
3. 输入 :s/thee/the/g 则是替换全行的匹配串,该行中所有的 "thee" 都会被
改变。
---> thee best time to see thee flowers is in thee spring.
4. 要替换两行之间出现的每个匹配串,请
输入 :#,#s/old/new/g 其中 #,# 代表的是替换操作的若干行中
首尾两行的行号。
输入 :%s/old/new/g 则是替换整个文件中的每个匹配串。
输入 :%s/old/new/gc 会找到整个文件中的每个匹配串,并且对每个匹配串
提示是否进行替换。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第四讲小结
1. CTRL-G 用于显示当前光标所在位置和文件状态信息。
G 用于将光标跳转至文件最后一行。
先敲入一个行号然后输入大写 G 则是将光标移动至该行号代表的行。
gg 用于将光标跳转至文件第一行。
2. 输入 / 然后紧随一个字符串是在当前所编辑的文档中正向查找该字符串。
输入 ? 然后紧随一个字符串则是在当前所编辑的文档中反向查找该字符串。
完成一次查找之后按 n 键是重复上一次的命令,可在同一方向上查
找下一个匹配字符串所在;或者按大写 N 向相反方向查找下一匹配字符串所在。
CTRL-O 带您跳转回较旧的位置,CTRL-I 则带您到较新的位置。
3. 如果光标当前位置是括号(、)、[、]、{、},按 % 会将光标移动到配对的括号上。
4. 在一行内替换头一个字符串 old 为新的字符串 new,请输入 :s/old/new
在一行内替换所有的字符串 old 为新的字符串 new,请输入 :s/old/new/g
在两行内替换所有的字符串 old 为新的字符串 new,请输入 :#,#s/old/new/g
在文件内替换所有的字符串 old 为新的字符串 new,请输入 :%s/old/new/g
进行全文替换时询问用户确认每个替换需添加 c 标志 :%s/old/new/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第五讲第一节:在 VIM 内执行外部命令的方法
** 输入 :! 然后紧接
|