forked from ma6174/vim
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.cnx
executable file
·1437 lines (1391 loc) · 70.5 KB
/
index.cnx
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
997
998
999
1000
*index.txt* For Vim version 7.3. 最近更新: 2010年7月
VIM 参考手册 by Bram Moolenaar
译者: Willis
http://vimcdoc.sf.net
*index*
本文件包含各个模式下的所有命令的一个列表。包含它们的标签和简单说明。列表以
ASCII 值排序。
提示: 要找特定功能,使用搜索命令。例如,要找寻如何删除,使用: "/删除"。
1. 插入模式 |insert-index|
2. 普通模式 |normal-index|
2.1. 文本对象 |objects|
2.2. 窗口命令 |CTRL-W|
2.3. 方括号命令 |[|
2.4. 'g' 开头的命令 |g|
2.5. 'z' 开头的命令 |z|
3. 可视模式 |visual-index|
4. 命令行编辑 |ex-edit-index|
5. EX 命令 |ex-cmd-index|
选项总览可见 help.txt |option-list|。
内建函数总览可见 |functions|。
Vim 变量的列表可见 |vim-variable|。
帮助项目的完整列表可见 |help-tags|。
==============================================================================
1. 插入模式 *insert-index*
标签 字符 动作~
-----------------------------------------------------------------------
|i_CTRL-@| CTRL-@ 插入最近插入的文本并停止插入
|i_CTRL-A| CTRL-A 插入最近插入的文本
CTRL-B 不用 |i_CTRL-B-gone|
|i_CTRL-C| CTRL-C 退出插入模式,不检查缩写,除非置位了
'insertmode'。
|i_CTRL-D| CTRL-D 在当前行删除一个 shiftwidth 的缩进
|i_CTRL-E| CTRL-E 插入光标下方的字符
CTRL-F 不用 (但缺省是 'cinkeys' 中的一项,用以重新缩
进本行)
|i_CTRL-G_j| CTRL-G CTRL-J 往下一行,到插入开始的列
|i_CTRL-G_j| CTRL-G j 往下一行,到插入开始的列
|i_CTRL-G_j| CTRL-G <Down> 往下一行,到插入开始的列
|i_CTRL-G_k| CTRL-G CTRL-K 往上一行,到插入开始的列
|i_CTRL-G_k| CTRL-G k 往上一行,到插入开始的列
|i_CTRL-G_k| CTRL-G <Up> 往上一行,到插入开始的列
|i_CTRL-G_u| CTRL-G u 开始新的不可撤消的编辑
|i_<BS>| <BS> 删除光标前的字符
|i_digraph| {char1}<BS>{char2}
输入二合字母 (只有打开了 'digraph' 选项才有效)
|i_CTRL-H| CTRL-H 等同于 <BS>
|i_<Tab>| <Tab> 插入 <Tab> 字符
|i_CTRL-I| CTRL-I 等同于 <Tab>
|i_<NL>| <NL> 等同于 <CR>
|i_CTRL-J| CTRL-J 等同于 <CR>
|i_CTRL-K| CTRL-K {char1} {char2}
输入二合字母
|i_CTRL-L| CTRL-L 'insertmode' 打开时: 离开插入模式
|i_<CR>| <CR> 开始新行
|i_CTRL-M| CTRL-M 等同于 <CR>
|i_CTRL-N| CTRL-N 查找光标前面的关键字的下一个匹配
|i_CTRL-O| CTRL-O 执行单个命令然后回到插入模式
|i_CTRL-P| CTRL-P 查找光标前面的关键字的前一个匹配
|i_CTRL-Q| CTRL-Q 等同于 CTRL-V,除非它用于终端控制流
|i_CTRL-R| CTRL-R {0-9a-z"%#*:=}
插入寄存器内容
|i_CTRL-R_CTRL-R| CTRL-R CTRL-R {0-9a-z"%#*:=}
按本义插入寄存器内容
|i_CTRL-R_CTRL-O| CTRL-R CTRL-O {0-9a-z"%#*:=}
按本义插入寄存器内容,而且不自动缩进
|i_CTRL-R_CTRL-P| CTRL-R CTRL-P {0-9a-z"%#*:=}
按本义插入寄存器内容,而且修正缩进
CTRL-S (用于终端控制流)
|i_CTRL-T| CTRL-T 在当前行插入一个 shiftwidth 的缩进
|i_CTRL-U| CTRL-U 删除当前行的所有输入字符
|i_CTRL-V| CTRL-V {char} 按本义插入下一个非数字字符
|i_CTRL-V_digit| CTRL-V {number} 插入三位十进制数字代表的单个字节。
|i_CTRL-W| CTRL-W 删除光标前的单词
|i_CTRL-X| CTRL-X {mode} 进入 CTRL-X 子模式,见 |i_CTRL-X_index|
|i_CTRL-Y| CTRL-Y 插入光标上方的字符
|i_CTRL-Z| CTRL-Z 'insertmode' 打开时: 暂停 Vim
|i_<Esc>| <Esc> 结束插入模式 (除非打开了 'insertmode')
|i_CTRL-[| CTRL-[ 等同于 <Esc>
|i_CTRL-\_CTRL-N| CTRL-\ CTRL-N 进入普通模式
|i_CTRL-\_CTRL-G| CTRL-\ CTRL-G 进入 'insertmode' 指定的模式
CTRL-\ a - z 保留给扩展用
CTRL-\ others 不用
|i_CTRL-]| CTRL-] 切换缩写
|i_CTRL-^| CTRL-^ 切换 |:lmap| 映射的使用
|i_CTRL-_| CTRL-_ 'allowrevins' 打开时: 改变语言
(希伯来语,波斯语等) {仅当编译时加入
|+rightleft| 特性才有效}
<Space> to '~' 不用,除了 CTRL-D 之前的 '0' 和 '^'
|i_0_CTRL-D| 0 CTRL-D 删除当前行的所有缩进
|i_^_CTRL-D| ^ CTRL-D 删除当前行的所有缩进,在下一行恢复删除的缩进
|i_<Del>| <Del> 删除光标所在的字符
Meta 字符 (0x80 到 0xff,128 到 255)
不用
|i_<Left>| <Left> 光标左移一个字符
|i_<S-Left>| <S-Left> 光标左移一个单词
|i_<C-Left>| <C-Left> 光标左移一个单词
|i_<Right>| <Right> 光标右移一个字符
|i_<S-Right>| <S-Right> 光标右移一个单词
|i_<C-Right>| <C-Right> 光标右移一个单词
|i_<Up>| <Up> 光标上移一行
|i_<S-Up>| <S-Up> 等同于 <PageUp>
|i_<Down>| <Down> 光标下移一行
|i_<S-Down>| <S-Down> 等同于 <PageDown>
|i_<Home>| <Home> 光标移到行首
|i_<C-Home>| <C-Home> 光标移到文件首
|i_<End>| <End> 光标移到行尾后面
|i_<C-End>| <C-End> 光标移到文件尾后面
|i_<PageUp>| <PageUp> 满屏上滚
|i_<PageDown>| <PageDown> 满屏下滚
|i_<F1>| <F1> 等同于 <Help>
|i_<Help>| <Help> 停止插入模式显示帮助窗口
|i_<Insert>| <Insert> 切换插入/替换模式
|i_<LeftMouse>| <LeftMouse> 光标移到鼠标点击处
|i_<ScrollWheelDown>| <ScrollWheelDown> 窗口向下滚动三行
|i_<S-ScrollWheelDown>| <S-ScrollWheelDown> 窗口向下滚动完整一页
|i_<ScrollWheelUp>| <ScrollWheelUp> 窗口向上滚动三行
|i_<S-ScrollWheelUp>| <S-ScrollWheelUp> 窗口向上滚动完整一页
|i_<ScrollWheelLeft>| <ScrollWheelLeft> 窗口向左滚动六列
|i_<S-ScrollWheelLeft>| <S-ScrollWheelLeft> 窗口向左滚动完整一页
|i_<ScrollWheelRight>| <ScrollWheelRight> 窗口向右滚动六列
|i_<S-ScrollWheelRight>| <S-ScrollWheelRight> 窗口向右滚动完整一页
CTRL-X 子模式的命令 *i_CTRL-X_index*
|i_CTRL-X_CTRL-D| CTRL-X CTRL-D 补全定义过的标识符
|i_CTRL-X_CTRL-E| CTRL-X CTRL-E 上滚
|i_CTRL-X_CTRL-F| CTRL-X CTRL-F 补全文件名
|i_CTRL-X_CTRL-I| CTRL-X CTRL-I 补全标识符
|i_CTRL-X_CTRL-K| CTRL-X CTRL-K 从字典补全标识符
|i_CTRL-X_CTRL-L| CTRL-X CTRL-L 补全完整的行
|i_CTRL-X_CTRL-N| CTRL-X CTRL-N 下一个补全
|i_CTRL-X_CTRL-O| CTRL-X CTRL-O 全能 (omni) 补全
|i_CTRL-X_CTRL-P| CTRL-X CTRL-P 上一个补全
|i_CTRL-X_CTRL-S| CTRL-X CTRL-S 拼写建议
|i_CTRL-X_CTRL-T| CTRL-X CTRL-T 从同义词词典补全标识符
|i_CTRL-X_CTRL-U| CTRL-X CTRL-U 用 'completefunc' 补全
|i_CTRL-X_CTRL-V| CTRL-X CTRL-V 如同 : 命令行那样补全
|i_CTRL-X_CTRL-Y| CTRL-X CTRL-Y 下滚
|i_CTRL-X_CTRL-]| CTRL-X CTRL-] 补全标签
|i_CTRL-X_s| CTRL-X s 拼写建议
{仅当编译时加入 |+insert_expand| 特性才有效}
==============================================================================
2. 普通模式 *normal-index*
CHAR 任何非空白字符
WORD 非空白字符的序列 (字串)
N 命令前输入的数值
{motion} 光标移动命令
Nmove {motion} 移动经过的文本
SECTION 可能以 '}' 而不是 '{' 开始的小节
备注: 1 = 光标移动命令;2 = 可以撤消/重做
标签 字符 备注 普通模式的动作 ~
------------------------------------------------------------------------------
CTRL-@ 不用
|CTRL-A| CTRL-A 2 把 N 加到光标所在/之后的数值上
|CTRL-B| CTRL-B 1 反向 (Back) 滚动 N 屏
|CTRL-C| CTRL-C 终止当前的 (搜索) 命令
|CTRL-D| CTRL-D 向下 (Down) 滚动 N 行 (缺省: 半屏)
|CTRL-E| CTRL-E 向上滚动 N 行 (附加 (Extra) N 行)
|CTRL-F| CTRL-F 1 向前 (Forward) 滚动 N 屏
|CTRL-G| CTRL-G 显示当前文件名和位置
|<BS>| <BS> 1 等同于 "h"
|CTRL-H| CTRL-H 1 等同于 "h"
|<Tab>| <Tab> 1 跳转到跳转表里第 N 个较新的项目
|CTRL-I| CTRL-I 1 等同于 <Tab>
|<NL>| <NL> 1 等同于 "j"
|CTRL-J| CTRL-J 1 等同于 "j"
CTRL-K 不用
|CTRL-L| CTRL-L 重画屏幕
|<CR>| <CR> 1 光标移到 N 行下面的第一个 CHAR
|CTRL-M| CTRL-M 1 等同于 <CR>
|CTRL-N| CTRL-N 1 等同于 "j"
|CTRL-O| CTRL-O 1 跳转到跳转表里第 N 个较旧的项目
|CTRL-P| CTRL-P 1 等同于 "k"
CTRL-Q (用于终端控制流)
|CTRL-R| CTRL-R 2 重做 'u' 撤消的改变
CTRL-S (用于终端控制流)
|CTRL-T| CTRL-T 跳转到标签列表的第 N 个较老的标签 (Tag)
|CTRL-U| CTRL-U 上滚 (Upwards) N 行 (缺省: 半屏)
|CTRL-V| CTRL-V 开始面向列块的可视 (Visual) 模式
|CTRL-W| CTRL-W {char} 窗口命令,见 |CTRL-W|
|CTRL-X| CTRL-X 2 从光标所在/之后的数值上减去 N
|CTRL-Y| CTRL-Y 下滚 N 行
|CTRL-Z| CTRL-Z 暂停程序 (或者启动新的外壳)
CTRL-[ <Esc> 不用
|CTRL-\_CTRL-N| CTRL-\ CTRL-N 进入普通 (Normal) 模式 (空动作)
|CTRL-\_CTRL-G| CTRL-\ CTRL-G 进入 'insertmode' 指定的模式
CTRL-\ a - z 保留作扩展用
CTRL-\ 其它 不用
|CTRL-]| CTRL-] :ta 到光标所在的标识符
|CTRL-^| CTRL-^ 编辑第 N 个轮换文件 (等价于 ":e #N")
CTRL-_ 不用
|<Space>| <Space> 1 等同于 "l"
|!| !{motion}{filter}
2 通过 {filter} 命令过滤 Nmove 文本
|!!| !!{filter} 2 通过 {filter} 命令过滤 N 行
|quote| "{a-zA-Z0-9.%#:-"} 指定下次删除、抽出或放置使用的寄存器
{a-zA-Z0-9.%#:-"} (大写用于添加)
({.%#:} 只能用于放置)
|#| # 1 反向搜索第 N 次出现的光标所在的标识符
|$| $ 1 光标移动到往下第 N 行的行尾之后
|%| % 1 查找本行下一个 (花/方) 括号,并转到其匹配的
括号上,或者转到匹配的注释配对上,或者转到
匹配的预处理命令上。
|N%| {count}% 1 转到文件的百分之 N 的位置上
|&| & 2 重复上次 :s
|'| '{a-zA-Z0-9} 1 光标移动到位置标记 {a-zA-Z0-9} 所在行的第一
个 CHAR 上
|''| '' 1 光标移动到最近一次跳转之前所在行的第一个
CHAR 上
|'(| '( 1 光标移动到当前句子的首部所在行的第一个 CHAR
上
|')| ') 1 光标移动到当前句子的尾部所在行的第一个 CHAR
上
|'<| '< 1 光标移动到当前缓冲区高亮区开始/曾经开始的行
的第一个 CHAR 上。
|'>| '> 1 光标移动到当前缓冲区高亮区结束/曾经结束的行
的第一个 CHAR 上。
|'[| '[ 1 光标移动到当前缓冲区最近操作/放置的文本的首
部所在行的第一个 CHAR 上
|']| '] 1 光标移动到当前缓冲区最近操作/放置的文本的尾
部所在行的第一个 CHAR 上
|'{| '{ 1 光标移动到当前段落的首部所在行的第一个 CHAR
上
|'}| '} 1 光标移动到当前段落的尾部所在行的第一个 CHAR
上
|(| ( 1 光标回退 N 个句子
|)| ) 1 光标前进 N 个句子
|star| * 1 正向搜索第 N 次出现的光标所在的标识符
|+| + 1 等同于 <CR>
|,| , 1 反方向重复最近的 f、t、F 或 T N 次
|-| - 1 光标移动到上方 N 行的第一个 CHAR 上
|.| . 2 重复最近的改变,其计数被 N 取代
|/| /{pattern}<CR> 1 正向搜索第 N 次出现的 {pattern}
|/<CR>| /<CR> 1 正向搜索最近一次搜索使用的 {pattern}
|count| 0 1 光标移动到本行的第一个字符上
|count| 1 附加于命令前,给出计数
|count| 2 "
|count| 3 "
|count| 4 "
|count| 5 "
|count| 6 "
|count| 7 "
|count| 8 "
|count| 9 "
|:| : 1 开始进入 Ex 命令
|N:| {count}: 开始进入 Ex 命令,给出从当前行开始到下方
N-1 行为止的行范围
|;| ; 1 重复最近的 f、t、F 或 T N 次
|<| <{motion} 2 左移 Nmove 文本行一个 'shiftwidth'
|<<| << 2 左移 N 行一个 'shiftwidth'
|=| ={motion} 2 通过 "indent" 过滤 Nmove 文本行
|==| == 2 通过 "indent" 过滤 N 行
|>| >{motion} 2 右移 Nmove 文本行一个 'shiftwidth'
|>>| >> 2 右移 N 行一个 'shiftwidth'
|?| ?{pattern}<CR> 1 反向搜索第 N 次出现的 {pattern}
|?<CR>| ?<CR> 1 反向搜索最近一次搜索使用的 {pattern}
|@| @{a-z} 2 执行 {a-z} 寄存器的内容 N 次
|@:| @: 重复上次的 ":" 命令 N 次
|@@| @@ 2 重复上次的 @{a-z} N 次
|A| A 2 在行尾附加文本 N 次
|B| B 1 光标反向移动 N 个 WORD (字串)
|C| ["x]C 2 从光标位置到行尾部分,再加上 N-1 行进行修改
[到缓冲区 (译者注: 应为寄存器,下同) x];等
价于 "c$"
|D| ["x]D 2 删除位置到行尾部分,再加上 N-1 行的字符 [到
缓冲区 (见上) x];等价于 "d$"
|E| E 1 光标正向移动到第 N 个 WORD 的结束处
|F| F{char} 1 光标左移到第 N 次出现的 {char} 上
|G| G 1 光标移动到第 N 行,缺省是最后一行
|H| H 1 光标移动到屏幕顶部开始算的第 N 行
|I| I 2 在本行第一个 CHAR 之前插入文本 N 次
|J| J 2 连接 (Join) N 行;缺省为 2
|K| K 查找光标所在的关键字 (Keyword),使用
'keywordprg' 的定义
|L| L 1 光标移动到屏幕底部开始算的第 N 行
|M| M 1 光标移动到屏幕的中间一行
|N| N 1 反方向重复最近的 '/' 或 '?' N 次
|O| O 2 在光标上方开始一个新行,并插入文本,重复 N
次
|P| ["x]P 2 在光标放置文本 [到缓冲区 (见上) x] N 次
|Q| Q 切换到 "Ex" 模式
|R| R 2 进入替换模式: 覆盖存在的字符,重复输入文本
N-1 次
|S| ["x]S 2 删除 N 行 [到缓冲区 (见上) x]] 并开始输入;
等价于 "cc"
|T| T{char} 1 光标移动到左侧第 N 次出现的 {char} 之前
|U| U 2 撤消一行内所有最近的改变
|V| V 进入面向行的可视 (Visual) 模式
|W| W 1 光标前移 N 个 WORD
|X| ["x]X 2 删除光标前的 N 个字符 [到缓冲区 (见上) x]
|Y| ["x]Y 抽出 N 行 [到缓冲区 (见上) x];等价于 "yy"
|ZZ| ZZ 如果修改过,保存当前文件,然后退出
|ZQ| ZQ 无论如何退出当前文件
|[| [{char} 方括号命令 (见下 |[|)
\ 不用
|]| ]{char} 方括号命令 (见下 |]|)
|^| ^ 1 光标移动到本行的第一个 CHAR 上
|_| _ 1 光标移动到下方第 N - 1 行的第一个 CHAR 上
|`| `{a-zA-Z0-9} 1 光标移动到位置标记 {a-zA-Z0-9}
|`(| `( 1 光标移动当前句子的开始处
|`)| `) 1 光标移动当前句子的结束处
|`<| `< 1 光标移动高亮区域的开始处
|`>| `> 1 光标移动高亮区域的结束处
|`[| `[ 1 光标移动最近一次操作/放置的文本的开始处
|`]| `] 1 光标移动最近一次操作/放置的文本的结束处
|``| `` 1 光标移动最近一次跳转的位置
|`{| `{ 1 光标移动当前段落的开始处
|`}| `} 1 光标移动当前段落的结束处
|a| a 2 在光标处附加文本 N 次
|b| b 1 光标反向移动 N 个单词
|c| ["x]c{motion} 2 删除 Nmove 文本 [到缓冲区 (见上) x] 并开始
编辑
|cc| ["x]cc 2 删除 N 行 [到缓冲区 (见上) x] 并开始编辑
|d| ["x]d{motion} 2 删除 Nmove 文本 [到缓冲区 (见上) x]
|dd| ["x]dd 2 删除 N 行 [到缓冲区 (见上) x]]
|do| do 2 等同于 ":diffget"
|dp| dp 2 等同于 ":diffput"
|e| e 1 光标正向移动到第 N 个单词的结束处
|f| f{char} 1 光标右移到第 N 次出现的 {char} 上
|g| g{char} 扩展命令,见下 |g|
|h| h 1 光标左移 N 个字符
|i| i 2 在光标前插入文本 N 次
|j| j 1 光标下移 N 行
|k| k 1 光标上移 N 行
|l| l 1 光标右移 N 个字符
|m| m{A-Za-z} 在光标位置处设置位置标记 {A-Za-z}
|n| n 1 重复最近的 '/' 或 '?' N 次
|o| o 2 在光标下方开始一个新行,并插入文本,重复 N
次
|p| ["x]p 2 在光标后放置文本 [从寄存器 x] N 次
|q| q{0-9a-zA-Z"} 记录输入的字符到命令寄存器 {0-9a-zA-Z"}
(大写用于添加)
|q| q (在记录时) 停止记录
|q:| q: 在命令行窗口里编辑 : 命令行
|q/| q/ 在命令行窗口里编辑 / 命令行
|q?| q? 在命令行窗口里编辑 ? 命令行
|r| r{char} 2 用 {char} 替换 N 个字符
|s| ["x]s 2 (替换) 删除 N 个字符 [到缓冲区 (见上) x] 并
开始输入
|t| t{char} 1 光标移动到右侧第 N 次出现的 {char} 之前
|u| u 2 撤消改变
|v| v 开始面向字符的可视 (Visual) 模式
|w| w 1 光标前移 N 个单词
|x| ["x]x 2 删除光标开始的 N 个字符 [到缓冲区 (见上) x]
|y| ["x]y{motion} 抽出 Nmove 文本 [到缓冲区 (见上) x]
|yy| ["x]yy 抽出 N 行 [到缓冲区 (见上) x]
|z| z{char} 'z' 开始的命令,见下 |z|
|{| { 1 光标反向移动 N 个段落
|bar| | 1 光标移到第 N 列
|}| } 1 光标正向移动 N 个段落
|~| ~ 2 'tildeop' 关闭时: 切换光标所在处开始的 N 个
字符的大小写,并右移光标 N 个字符
|~| ~{motion} 'tildeop' 打开时: 切换 Nmove 文本的大小写
|<C-End>| <C-End> 1 等同于 "G"
|<C-Home>| <C-Home> 1 等同于 "gg"
|<C-Left>| <C-Left> 1 等同于 "b"
|<C-LeftMouse>| <C-LeftMouse> ":ta" 到鼠标点击所在的单词上
|<C-Right>| <C-Right> 1 等同于 "w"
|<C-RightMouse>| <C-RightMouse> 等同于 "CTRL-T"
|<Del>| ["x]<Del> 2 等同于 "x"
|N<Del>| {count}<Del> 删除 {count} 最后的一位数字
|<Down>| <Down> 1 等同于 "j"
|<End>| <End> 1 等同于 "$"
|<F1>| <F1> 等同于 <Help>
|<Help>| <Help> 打开帮助窗口
|<Home>| <Home> 1 等同于 "0"
|<Insert>| <Insert> 2 等同于 "i"
|<Left>| <Left> 1 等同于 "h"
|<LeftMouse>| <LeftMouse> 1 移动光标到鼠标点击处
|<MiddleMouse>| <MiddleMouse> 2 等同于在鼠标点击处 "gP"
|<PageDown>| <PageDown> 等同于 CTRL-F
|<PageUp>| <PageUp> 等同于 CTRL-B
|<Right>| <Right> 1 等同于 "l"
|<RightMouse>| <RightMouse> 开始可视模式,移动光标到鼠标点击处
|<S-Down>| <S-Down> 1 等同于 CTRL-F
|<S-Left>| <S-Left> 1 等同于 "b"
|<S-LeftMouse>| <S-LeftMouse> 等同于在鼠标点击处 "*"
|<S-Right>| <S-Right> 1 等同于 "w"
|<S-RightMouse>| <S-RightMouse> 等同于在鼠标点击处 "#"
|<S-Up>| <S-Up> 1 等同于 CTRL-B
|<Undo>| <Undo> 2 等同于 "u"
|<Up>| <Up> 1 等同于 "k"
|<ScrollWheelDown>| <ScrollWheelDown> 窗口向下滚动三行
|<S-ScrollWheelDown>| <S-ScrollWheelDown> 窗口向下滚动完整一页
|<ScrollWheelUp>| <ScrollWheelUp> 窗口向上滚动三行
|<S-ScrollWheelUp>| <S-ScrollWheelUp> 窗口向上滚动完整一页
|<ScrollWheelLeft>| <ScrollWheelLeft> 窗口向左滚动六列
|<S-ScrollWheelLeft>| <S-ScrollWheelLeft> 窗口向左滚动完整一页
|<ScrollWheelRight>| <ScrollWheelRight> 窗口向右滚动六列
|<S-ScrollWheelRight>| <S-ScrollWheelRight> 窗口向右滚动完整一页
==============================================================================
2.1 文本对象 *objects*
他们可以用在操作符之后,或者在可视模式里选择一个对象。
标签 命令 普通模式下的动作 ~
------------------------------------------------------------------------------
|v_aquote| a" 双引号字符串
|v_a'| a' 单引号字符串
|v_a(| a( 等同于 ab
|v_a)| a) 等同于 ab
|v_a<| a< "一个 <> 块" 从 '<' 到匹配的 '>'
|v_a>| a> 等同于 a<
|v_aB| aB "一个大块" 从 "[{" 到 "]}" (带上括号)
|v_aW| aW "一个字串" (带上空白)
|v_a[| a[ "一个 [] 块" 从 '[' 到匹配的 ']'
|v_a]| a] 等同于 a[
|v_a`| a` 反引号字符串
|v_ab| ab "一个块" 从 "[(" 到 "])" (带上括号)
|v_ap| ap "一个段落" (带上空白)
|v_as| as "一个句子" (带上空白)
|v_at| at "一个标签块" (带上空白)
|v_aw| aw "一个单词" (带上空白)
|v_a{| a{ 等同于 aB
|v_a}| a} 等同于 aB
|v_iquote| i" 双引号字符串,不带引号
|v_i'| i' 单引号字符串,不带引号
|v_i(| i( 等同于 ib
|v_i)| i) 等同于 ib
|v_i<| i< "内含 <> 块" 从 '<' 到匹配的 '>'
|v_i>| i> 等同于 i<
|v_iB| iB "内含大块" 从 "[{" 到 "]}"
|v_iW| iW "内含字串"
|v_i[| i[ "内含 [] 块" 从 '[' 到匹配的 ']'
|v_i]| i] 等同于 i[
|v_i`| i` 反引号字符串,不带反引号
|v_ib| ib "内含块" 从 "[(" 到 "])"
|v_ip| ip "内含段落"
|v_is| is "内含句子"
|v_it| it "内含标签块"
|v_iw| iw "内含单词"
|v_i{| i{ 等同于 iB
|v_i}| i} 等同于 iB
==============================================================================
2.2 窗口命令 *CTRL-W*
标签 命令 普通模式下的动作 ~
------------------------------------------------------------------------------
|CTRL-W_CTRL-B| CTRL-W CTRL-B 等同于 "CTRL-W b"
|CTRL-W_CTRL-C| CTRL-W CTRL-C 等同于 "CTRL-W c"
|CTRL-W_CTRL-D| CTRL-W CTRL-D 等同于 "CTRL-W d"
|CTRL-W_CTRL-F| CTRL-W CTRL-F 等同于 "CTRL-W f"
CTRL-W CTRL-G 等同于 "CTRL-W g .."
|CTRL-W_CTRL-H| CTRL-W CTRL-H 等同于 "CTRL-W h"
|CTRL-W_CTRL-I| CTRL-W CTRL-I 等同于 "CTRL-W i"
|CTRL-W_CTRL-J| CTRL-W CTRL-J 等同于 "CTRL-W j"
|CTRL-W_CTRL-K| CTRL-W CTRL-K 等同于 "CTRL-W k"
|CTRL-W_CTRL-L| CTRL-W CTRL-L 等同于 "CTRL-W l"
|CTRL-W_CTRL-N| CTRL-W CTRL-N 等同于 "CTRL-W n"
|CTRL-W_CTRL-O| CTRL-W CTRL-O 等同于 "CTRL-W o"
|CTRL-W_CTRL-P| CTRL-W CTRL-P 等同于 "CTRL-W p"
|CTRL-W_CTRL-Q| CTRL-W CTRL-Q 等同于 "CTRL-W q"
|CTRL-W_CTRL-R| CTRL-W CTRL-R 等同于 "CTRL-W r"
|CTRL-W_CTRL-S| CTRL-W CTRL-S 等同于 "CTRL-W s"
|CTRL-W_CTRL-T| CTRL-W CTRL-T 等同于 "CTRL-W t"
|CTRL-W_CTRL-V| CTRL-W CTRL-V 等同于 "CTRL-W v"
|CTRL-W_CTRL-W| CTRL-W CTRL-W 等同于 "CTRL-W w"
|CTRL-W_CTRL-X| CTRL-W CTRL-X 等同于 "CTRL-W x"
|CTRL-W_CTRL-Z| CTRL-W CTRL-Z 等同于 "CTRL-W z"
|CTRL-W_CTRL-]| CTRL-W CTRL-] 等同于 "CTRL-W ]"
|CTRL-W_CTRL-^| CTRL-W CTRL-^ 等同于 "CTRL-W ^"
|CTRL-W_CTRL-_| CTRL-W CTRL-_ 等同于 "CTRL-W _"
|CTRL-W_+| CTRL-W + 增加当前窗口高度 N 行
|CTRL-W_-| CTRL-W - 减少当前窗口高度 N 行
|CTRL-W_<| CTRL-W < 减少当前窗口宽度 N 列
|CTRL-W_=| CTRL-W = 使得所有窗口同宽同高
|CTRL-W_>| CTRL-W > 增加当前窗口宽度 N 列
|CTRL-W_H| CTRL-W H 移动当前窗口到最左端
|CTRL-W_J| CTRL-W J 移动当前窗口到最底部
|CTRL-W_K| CTRL-W K 移动当前窗口到最顶部
|CTRL-W_L| CTRL-W L 移动当前窗口到最右端
|CTRL-W_P| CTRL-W P 跳转到预览窗口
|CTRL-W_R| CTRL-W R 向上旋转窗口 N 次
|CTRL-W_S| CTRL-W S 等同于 "CTRL-W s"
|CTRL-W_T| CTRL-W T 移动当前窗口到新标签页
|CTRL-W_W| CTRL-W W 跳转到前面第 N 个窗口 (回绕)
|CTRL-W_]| CTRL-W ] 分割窗口并跳转到光标所在的标签上
|CTRL-W_^| CTRL-W ^ 分割窗口并编辑轮换文件 N
|CTRL-W__| CTRL-W _ 设置当前窗口高度为 N (缺省: 尽量大)
|CTRL-W_b| CTRL-W b 跳转到底部的窗口
|CTRL-W_c| CTRL-W c 关闭当前窗口 (类似于 |:close|)
|CTRL-W_d| CTRL-W d 分割窗口并跳转到光标所在的定义上
|CTRL-W_f| CTRL-W f 分割窗口并跳转到光标所在的文件名上
|CTRL-W_F| CTRL-W F 分割窗口并编辑光标所在的文件名,然后跳转到
文件名后给出的行号上。
|CTRL-W_g_CTRL-]| CTRL-W g CTRL-] 分割窗口并在光标所在的标签上执行 |:tjump|
|CTRL-W_g]| CTRL-W g ] 分割窗口并在光标所在的标签上执行 |:tselect|
|CTRL-W_g}| CTRL-W g } 在光标所在的标签上执行 |:ptjump|
|CTRL-W_gf| CTRL-W g f 在新的标签页里编辑光标所在的文件名
|CTRL-W_gF| CTRL-W g F 在新的标签页里编辑光标所在的文件名然后跳转
到文件名后给出的行号上。
|CTRL-W_h| CTRL-W h 跳转到左面第 N 个的窗口 (在首个窗口上停止)
|CTRL-W_i| CTRL-W i 分割窗口并跳转到光标所在的标识符的声明上
|CTRL-W_j| CTRL-W j 跳转到下面第 N 个的窗口 (在最后窗口上停止)
|CTRL-W_k| CTRL-W k 跳转到上面第 N 个的窗口 (在首个窗口上停止)
|CTRL-W_l| CTRL-W l 跳转到右面第 N 个的窗口 (在最后窗口上停止)
|CTRL-W_n| CTRL-W n 打开新窗口,N 行高
|CTRL-W_o| CTRL-W o 关闭除了当前窗口以外的所有窗口 (类似于
|:only|)
|CTRL-W_p| CTRL-W p 转到前面一个 (最近访问的) 窗口
|CTRL-W_q| CTRL-W q 退出当前窗口 (类似于 |:quit|)
|CTRL-W_r| CTRL-W r 向下旋转窗口 N 次
|CTRL-W_s| CTRL-W s 分割当前窗口为两部分,新的窗口 N 行高
|CTRL-W_t| CTRL-W t 跳转到顶部窗口
|CTRL-W_v| CTRL-W v 垂直分割当前窗口,新的窗口 N 列宽
|CTRL-W_w| CTRL-W w 转到后面第 N 个窗口 (回绕)
|CTRL-W_x| CTRL-W x 交换当前和第 N 个窗口 (缺省: 下一个窗口)
|CTRL-W_z| CTRL-W z 关闭预览窗口
|CTRL-W_bar| CTRL-W | 设置窗口宽度为 N 列
|CTRL-W_}| CTRL-W } 在预览窗口里显示光标所在的标签
|CTRL-W_<Down>| CTRL-W <Down> 等同于 "CTRL-W j"
|CTRL-W_<Up>| CTRL-W <Up> 等同于 "CTRL-W k"
|CTRL-W_<Left>| CTRL-W <Left> 等同于 "CTRL-W h"
|CTRL-W_<Right>| CTRL-W <Right> 等同于 "CTRL-W l"
==============================================================================
2.3 方括号命令 *[* *]*
标签 字符 备注 普通模式下的动作 ~
------------------------------------------------------------------------------
|[_CTRL-D| [ CTRL-D 跳转到第一个在当前文件和它包含的头文件里匹
配光标所在的单词的 #define,从当前文件的头
部开始
|[_CTRL-I| [ CTRL-I 跳转到第一个在当前文件和它包含的头文件里匹
配光标所在单词的位置,从当前文件头部开始
|[#| [# 1 光标移动到前面第 N 个未匹配的 #if、#else 或
者 #ifdef
|['| [' 1 光标移动到前面的小写位置标记,定位在它所在
行的第一个非空白字符上
|[(| [( 1 光标移动到前面第 N 个未匹配的 '('
|[star| [* 1 等同于 "[/"
|[`| [` 1 光标移动到前一个小写位置标记
|[/| [/ 1 光标移动到前面第 N 个 C 注释的开始处
|[D| [D 列出在当前文件和它包含的头文件里匹配光标所
在的单词的所有定义,从当前文件的头部开始
|[I| [I 列出在当前文件和它包含的头文件里匹配光标所
在单词的所有位置,从当前文件的头部开始
|[P| [P 2 等同于 "[p"
|[[| [[ 1 光标后退 N 个小节
|[]| [] 1 光标后退 N 个 SECTION
|[c| [c 1 光标后退 N 个更改开始的地方
|[d| [d 显示第一个在当前文件和它包含的头文件里匹配
光标所在的单词的 #define,从当前文件的头部
开始
|[f| [f 等同于 "gf"
|[i| [i 显示第一个在当前文件和它包含的头文件里匹配
光标所在单词的位置,从当前文件的头部开始
|[m| [m 1 光标后退 N 个成员函数的开始
|[p| [p 2 类似于 "P",但调整当前行的缩进
|[s| [s 1 移动到前一个拼写错误的单词
|[z| [z 1 移动到打开的折叠的开始
|[{| [{ 1 光标后退 N 个未匹配的 '{'
|[<MiddleMouse> [<MiddleMouse> 2 等同于 "[p"
|]_CTRL-D| ] CTRL-D 跳转到第一个在当前文件和它包含的头文件里匹
配光标所在的单词的 #define,从光标位置开始
|]_CTRL-I| ] CTRL-I 跳转到第一个在当前文件和它包含的头文件里匹
配光标所在单词的位置,从光标位置开始
|]#| ]# 1 光标移动到后面第 N 个未匹配的 #endif、#else
|]'| ]' 1 光标移动到后面的小写位置标记,定位在它所在
行的第一个非空白字符上
|](| ]( 1 光标移动到后面第 N 个未匹配的 ')'
|]star| ]* 1 等同于 "]/"
|]`| ]` 1 光标移动到后一个小写位置标记
|]/| ]/ 1 光标移动到后面第 N 个 C 注释的结尾处
|]D| ]D 列出在当前文件和它包含的头文件里匹配光标所
在的单词的所有定义,从光标位置开始
|]I| ]I 列出在当前文件和它包含的头文件里匹配光标所
在单词的所有位置,从光标位置开始
|]P| ]P 2 等同于 "[p"
|]]| ]] 1 光标前进 N 个小节
|]]| ]] 1 光标前进 N 个 SECTION
|]c| ]c 1 光标前进 N 个更改开始的地方
|]d| ]d 显示第一个在当前文件和它包含的头文件里匹配
光标所在的单词的 #define,从光标位置开始
|]f| ]f 等同于 "gf"
|]i| ]i 显示第一个在当前文件和它包含的头文件里匹配
光标所在单词的位置,从光标位置开始
|]m| ]m 1 光标前进 N 个成员函数的结尾
|]p| ]p 2 类似于 "p",但调整当前行的缩进
|]s| ]s 1 移动到后一个拼写错误的单词
|]z| ]z 1 移动到打开的折叠的结尾处
|]{| ]{ 1 光标前进 N 个未匹配的 '}'
|]<MiddleMouse> ]<MiddleMouse> 2 等同于 "]p"
==============================================================================
2.4 'g' 开始的命令 *g*
标签 字符 备注 普通模式下的动作 ~
------------------------------------------------------------------------------
|g_CTRL-A| g CTRL-A 只有在编译时加入了 MEM_PROFILE 时才有定义:
转储内存内容
|g_CTRL-G| g CTRL-G 显示当前光标位置
|g_CTRL-H| g CTRL-H 启动选择列块模式
|g_CTRL-]| g CTRL-] |:tjump| 到光标所在的标签上
|g#| g# 1 类似于 "#",但不使用 "\<" 和 "\>"
|g$| g$ 1 'wrap' 关闭时转到当前行最右侧屏幕上可见的字
符
'wrap' 打开时转到当前屏幕行最右侧的字符
|g&| g& 2 在所有行上重复上次的 ":s"
|g'| g'{mark} 1 类似于 |'|,但不改变跳转表
|g`| g`{mark} 1 类似于 |`|,但不改表跳转表
|gstar| g* 1 类似于 "*",但不使用 "\<" 和 "\>"
|g0| g0 1 'wrap' 关闭时转到当前行最左侧屏幕上可见的字
符
'wrap' 打开时转到当前屏幕行最左侧的字符
|g8| g8 显示光标所在的 UTF-8 字符的十六进制字节码
|g<| g< 显示上次的命令输出
|g?| g? 2 Rot13 编码操作符
|g?g?| g?? 2 Rot13 编码当前行
|g?g?| g?g? 2 Rot13 编码当前行
|gD| gD 1 转到当前文件的光标所在单词的定义
|gE| gE 1 反向转移到上一个 WORD 的结尾处
|gH| gH 启动选择行模式
|gI| gI 2 类似于 "I",但总是从第一列开始
|gJ| gJ 2 连接行,不插入空格
|gP| ["x]gP 2 在光标签放置文本 [从寄存器 x] N 次,光标留
在插入文本之后
|gR| gR 2 进入虚拟替换模式
|gU| gU{motion} 2 使得 Nmove 文本全部大写
|gV| gV 在执行选择模式下的映射或者菜单时,不要重复
选择过去的可视区域
|g]| g] :tselect 到光标所在的标签上
|g^| g^ 1 'wrap' 关闭时转到当前行最左侧屏幕上可见的非
空白字符
'wrap' 打开时转到当前屏幕行最左侧的非空白字
符
|ga| ga 打印光标所在处的字符的 ascii 值
|gd| gd 1 转到当前函数里当前光标所在的单词的定义
|ge| ge 1 反向转到前一个单词的结尾处
|gf| gf 开始编辑当前光标所在的名字对应的文件
|gF| gF 开始编辑光标所在的文件名并跳转到文件名后的
行号上。
|gg| gg 1 光标移动到第 N 行,缺省是第一行
|gh| gh 开始选择模式
|gi| gi 2 类似于 "i",但先移动到 |'^| 位置标记
|gj| gj 1 类似于 "j",但 'wrap' 打开时往下 N 个屏幕行
|gk| gk 1 类似于 "k",但 'wrap' 打开时往上 N 个屏幕行
|gm| gm 1 转到屏幕行正中间的那个字符
|go| go 1 光标移动到缓冲区的第 N 个字节
|gp| ["x]gp 2 在光标后面放置文本 [从寄存器 x] N 次,光标
留在后面
|gq| gq{motion} 2 排版 Nmove 文本
|gr| gr{char} 2 虚拟替换 N 个字符为 {char}
|gs| gs 睡眠 N 秒 (缺省 1)
|gu| gu{motion} 2 使得 Nmove 文本全部小写
|gv| gv 重新选择上次的可视区域
|gw| gw{motion} 2 排版 Nmove 文本并保持光标位置
|netrw-gx| gx 执行光标下的文件名对应的应用程序 (仅限于
|netrw| 插件)
|g@| g@{motion} 调用 'operatorfunc'
|g~| g~{motion} 2 改变 Nmove 文本的大小写
|g<Down>| g<Down> 1 等同于 "gj"
|g<End>| g<End> 1 等同于 "g$"
|g<Home>| g<Home> 1 等同于 "g0"
|g<LeftMouse>| g<LeftMouse> 等同于 <C-LeftMouse>
g<MiddleMouse> 等同于 <C-MiddleMouse>
|g<RightMouse>| g<RightMouse> 等同于 <C-RightMouse>
|g<Up>| g<Up> 1 等同于 "gk"
==============================================================================
2.5 'z' 开始的命令 *z*
标签 字符 备注 普通模式下的动作 ~
------------------------------------------------------------------------------
|z<CR>| z<CR> 重画,光标移动到窗口的顶行的第一个非空白字
符
|zN<CR>| z{height}<CR> 重画,使得窗口高度为 {height} 行
|z+| z+ 光标移动到第 N 行 (缺省为窗口之后的第一
行),其它同 "z<CR>"
|z-| z- 重画,光标移动到窗口末行的第一个非空白字符
|z.| z. 重画,光标移动到窗口的中间行的第一个非空白
字符
|z=| z= 给出拼写建议
|zA| zA 递归打开一个关闭的折叠或关闭一个打开的折叠
|zC| zC 递归关闭折叠
|zD| zD 递归删除折叠
|zE| zE 除去所有折叠
|zF| zF 为 N 行建立折叠
|zG| zG 把单词标记为拼写正确 (good)
|zM| zM 设置 'foldlevel' 为零
|zN| zN 置位 'foldenable'
|zO| zO 递归打开折叠
|zR| zR 设置 'foldlevel' 为最大折叠级别
|zW| zW 把单词标记为拼写错误 (wrong)
|zX| zX 重新应用 'foldlevel'
|z^| z^ 光标移动到第 N 行 (缺省为窗口之前的一行),
其它同 "z-"
|za| za 打开关闭的折叠,或关闭打开的折叠
|zb| zb 重画,光标在窗口底行
|zc| zc 关闭折叠
|zd| zd 删除折叠
|ze| ze 'wrap' 关闭时,水平滚动使得光标定位到屏幕的
尾部 (最右侧)
|zf| zf{motion} 为 Nmove 文本建立折叠
|zg| zg 把单词标记为拼写正确 (good)
|zh| zh 'wrap' 关闭时,水平右滚屏幕 N 个字符
|zi| zi 切换 'foldenable'
|zj| zj 1 移动到下一个折叠的开始处
|zk| zk 1 移动到前一个折叠的结束处
|zl| zl 'wrap' 关闭时,水平左滚屏幕 N 个字符
|zm| zm 从 'foldlevel' 减一
|zn| zn 复位 'foldenable'
|zo| zo 打开折叠
|zr| zr 给 'foldlevel' 加一
|zs| zs 'wrap' 关闭时,水平滚动使得光标定位到屏幕的
起始处 (最左侧)
|zt| zt 重画,光标移动到窗口的顶部
|zw| zw 把单词标记为拼写错误 (wrong)
|zv| zv 打开足够的折叠,使得当前行可见
|zx| zx 重新应用 'foldlevel' 然后执行 "zv"
|zz| zz 重画,光标移动到窗口的中间行
|z<Left>| z<Left> 等同于 "zh"
|z<Right>| z<Right> 等同于 "zl"
==============================================================================
3. 可视模式 *visual-index*
可视模式下,大多数命令同普通模式的相同。以下列出的是不同的部分。
标签 字符 备注 可视模式下的动作 ~
------------------------------------------------------------------------------
|v_CTRL-\_CTRL-N| CTRL-\ CTRL-N 结束可视模式
|v_CTRL-\_CTRL-G| CTRL-\ CTRL-G 转到 'insertmode' 指定的模式
|v_CTRL-C| CTRL-C 结束可视模式
|v_CTRL-G| CTRL-G 在可视模式和选择模式间切换
|v_<BS>| <BS> 2 选择模式: 删除高亮区域
|v_CTRL-H| CTRL-H 2 等同于 <BS>
|v_CTRL-O| CTRL-O 从选择模式切换到可视模式,只限于下个命令
|v_CTRL-V| CTRL-V 使得可视模式面向列块,或者退出可视模式
|v_<Esc>| <Esc> 结束可视模式
|v_CTRL-]| CTRL-] 跳转到高亮的标签上
|v_!| !{filter} 2 通过外部命令 {filter} 过滤高亮行
|v_:| : 使用高亮行作为范围,开始一个命令行
|v_<| < 2 左移高亮行一个 'shiftwidth'
|v_=| = 2 用 {equalprg} 选项指定的外部程序过滤高亮行
|v_>| > 2 右移高亮行一个 'shiftwidth'
|v_b_A| A 2 列块模式下: 在高亮区域的所有行后附加相同的
文本
|v_C| C 2 删除高亮行,并开始插入
|v_D| D 2 删除高亮行
|v_b_I| I 2 列块模式: 在所有高亮行之前插入相同的文本
|v_J| J 2 连接高亮行
|v_K| K 在高亮区域上运行 'keywordprg'
|v_O| O 水平移动到区域的另外一侧
Q 不启动 Ex 模式
|v_R| R 2 删除高亮行并开始插入
|v_S| S 2 删除高亮行并开始插入
|v_U| U 2 使得高亮区域全变大写
|v_V| V 使得可视区域面向行,或者退出可视模式
|v_X| X 2 删除高亮区域
|v_Y| Y 抽出高亮行
|v_aquote| a" 扩展高亮区域,使包含一个双引号字符串
|v_a'| a' 扩展高亮区域,使包含一个单引号字符串
|v_a(| a( 等同于 ab
|v_a)| a) 等同于 ab
|v_a<| a< 扩展高亮区域,使包含一个 <> 块
|v_a>| a> 等同于 a<
|v_aB| aB 扩展高亮区域,使包含一个 {} 块
|v_aW| aW 扩展高亮区域,使包含 "一个 WORD"
|v_a[| a[ 扩展高亮区域,使包含一个 [] 块
|v_a]| a] 等同于 a[
|v_a`| a` 扩展高亮区域,使包含一个反引号字符串
|v_ab| ab 扩展高亮区域,使包含一个 () 块
|v_ap| ap 扩展高亮区域,使包含一个段落
|v_as| as 扩展高亮区域,使包含一个句子
|v_at| at 扩展高亮区域,使包含一个标签块
|v_aw| aw 扩展高亮区域,使包含 "一个单词"
|v_a{| a{ 等同于 aB
|v_a}| a} 等同于 aB
|v_c| c 2 删除高亮区域,并开始插入
|v_d| d 2 删除高亮区域
|v_gJ| gJ 2 连接高亮行,不插入空格
|v_gq| gq 2 排版高亮行
|v_gv| gv 交换现在和以前的高亮区域
|v_iquote| i" 扩展高亮区域,使包含一个双引号字符串 (但不
含引号)
|v_i'| i' 扩展高亮区域,使包含一个单引号字符串 (但不
含引号)
|v_i(| i( 等同于 ib
|v_i)| i) 等同于 ib
|v_i<| i< 扩展高亮区域,使包含内含 <> 块
|v_i>| i> 等同于 i<
|v_iB| iB 扩展高亮区域,使包含内含 {} 块
|v_iW| iW 扩展高亮区域,使包含 "内含 WORD"
|v_i[| i[ 扩展高亮区域,使包含内含 [] 块
|v_i]| i] 等同于 i[
|v_i`| i` 扩展高亮区域,使包含一个反引号字符串 (但不
含反引号)
|v_ib| ib 扩展高亮区域,使包含内含 () 块
|v_ip| ip 扩展高亮区域,使包含内含段落
|v_is| is 扩展高亮区域,使包含内含句子
|v_it| it 扩展高亮区域,使包含内含标签块
|v_iw| iw 扩展高亮区域,使包含 "内含单词"
|v_i{| i{ 等同于 iB
|v_i}| i} 等同于 iB
|v_o| o 移动光标到区域的另一侧
|v_r| r 2 删除高亮区域,并开始插入
|v_s| s 2 删除高亮区域,并开始插入
|v_u| u 2 使得高亮区域全变小写
|v_v| v 使得可视模式面向字符,或者退出可视模式
|v_x| x 2 删除高亮区域
|v_y| y 抽出高亮区域
|v_~| ~ 2 改变高亮区域的大小写
==============================================================================
4. 命令行编辑 *ex-edit-index*
使用 ':'、'!'、'/' 或 '?' 命令进入命令行编辑。
输入普通字符会在当前光标位置插入该字符。
下面的 "补全" 指上下文相关的补全。如果可能,会补全文件名、标签、命令等。
CTRL-@ 不用
|c_CTRL-A| CTRL-A 使用光标前面的模式进行补全,并插入所有的匹配
|c_CTRL-B| CTRL-B 光标移动到命令行开始的地方
|c_CTRL-C| CTRL-C 等同于 <ESC>
|c_CTRL-D| CTRL-D 列出光标前面模式的所有补全
|c_CTRL-E| CTRL-E 光标移动到命令行结束的地方
|'cedit'| CTRL-F 'cedit' 的缺省值: 打开命令行窗口;否则不用
CTRL-G 不用
|c_<BS>| <BS> 删除光标前面的字符
|c_digraph| {char1} <BS> {char2}
'digraph' 打开时,输入二合字母
|c_CTRL-H| CTRL-H 等同于 <BS>
|c_<Tab>| <Tab> 如果 'wildchar' 是 <Tab>: 补全光标前面的模式
|c_<S-Tab>| <S-Tab> 等同于 CTRL-P
|c_wildchar| 'wildchar' 补全光标前面的模式 (缺省: <Tab>)
|c_CTRL-I| CTRL-I 等同于 <Tab>
|c_<NL>| <NL> 等同于 <CR>
|c_CTRL-J| CTRL-J 等同于 <CR>
|c_CTRL-K| CTRL-K {char1} {char2}
输入二合字母
|c_CTRL-L| CTRL-L 补全光标前的模式,并插入最长的公共子串
|c_<CR>| <CR> 执行输入的命令
|c_<CR>| CTRL-M 等同于 <CR>
|c_CTRL-N| CTRL-N 使用 'wildchar' 并有多个匹配: 转到下一个匹配,
不然: 等同于 <Down>
CTRL-O 不同
|c_CTRL-P| CTRL-P 使用 'wildchar' 并有多个匹配: 转到上一个匹配,
不然: 等同于 <Up>
|c_CTRL-Q| CTRL-Q 等同于 CTRL-V,除非用于终端控制流
|c_CTRL-R| CTRL-R {0-9a-z"%#*:= CTRL-F CTRL-P CTRL-W CTRL-A}
插入寄存器的内容或特殊对象到光标所在的地方,如
同直接输入那样
|c_CTRL-R_CTRL-R| CTRL-R CTRL-R {0-9a-z"%#*:= CTRL-F CTRL-P CTRL-W CTRL-A}
按本义插入寄存器的内容或特殊对象到光标所在的地
方
CTRL-S (用于终端控制流)
CTRL-T 不用
|c_CTRL-U| CTRL-U 删除所有字符
|c_CTRL-V| CTRL-V 按本义插入下一个非数字字符,或者插入其后三位数
字所代表的单个字节。
|c_CTRL-W| CTRL-W 删除光标前面的单词
CTRL-X 不用 (保留作补全用)
CTRL-Y 复制 (抽出) 无模式的选择
CTRL-Z 不用 (保留作暂停用)
|c_<Esc>| <Esc> 放弃命令行,不执行
|c_<Esc>| CTRL-[ 等同于 <Esc>
|c_CTRL-\_CTRL-N| CTRL-\ CTRL-N 转到普通模式,放弃命令行
|c_CTRL-\_CTRL-G| CTRL-\ CTRL-G 转到 'insertmode' 指定的模式,放弃命令行
CTRL-\ a - d 保留给扩展用
|c_CTRL-\_e| CTRL-\ e {expr} 以 {expr} 的结果替换命令行
CTRL-\ f - z 保留给扩展用
CTRL-\ 其它 不用
|c_CTRL-]| CTRL-] 激活缩写
|c_CTRL-^| CTRL-^ 切换 |:lmap| 映射的使用
|c_CTRL-_| CTRL-_ 'allowrevins' 打开时: 改变语言 (希伯来,波斯)
|c_<Del>| <Del> 删除光标所在的字符
|c_<Left>| <Left> 光标左移
|c_<S-Left>| <S-Left> 光标左移一个单词
|c_<C-Left>| <C-Left> 光标左移一个单词
|c_<Right>| <Right> 光标右移
|c_<S-Right>| <S-Right> 光标右移一个单词
|c_<C-Right>| <C-Right> 光标右移一个单词
|c_<Up>| <Up> 从历史中调入匹配光标前模式的前一个命令行
|c_<S-Up>| <S-Up> 从历史中调入前一个命令行
|c_<Down>| <Down> 从历史中调入匹配光标前模式的后一个命令行
|c_<S-Down>| <S-Down> 从历史中调入后一个命令行
|c_<Home>| <Home> 光标移动到命令行开始的地方
|c_<End>| <End> 光标移动到命令行结束的地方
|c_<PageDown>| <PageDown> 等同于 <S-Down>
|c_<PageUp>| <PageUp> 等同于 <S-Up>
|c_<Insert>| <Insert> 切换插入/替换模式
|c_<LeftMouse>| <LeftMouse> 光标移动到鼠标点击的地方
亚瑟王,你找到 (圣杯) 了! *holy-grail*
==============================================================================
5. EX 命令 *ex-cmd-index* *:index*
这里是一个简短但完整的 ":" 命令的列表。这里不讨论参数。命令可选的部分用 [] 括
起。命令按照名字非可选部分排序。
|:!| :! 过滤行,或可通过外部命令执行之
|:!!| :!! 重复上次的 ":!" 命令
|:#| :# 等同于 ":number"
|:&| :& 重复上次的 ":substitute"
|:star| :* 执行寄存器的内容
|:<| :< 将行左移一个 'shiftwidth'
|:=| := 显示光标所在的行号
|:>| :> 将行右移一个 'shiftwidth'
|:@| :@ 执行寄存器的内容
|:@@| :@@ 重复上次的 ":@"
|:Next| :N[ext] 转到参数列表的上一个文件
|:Print| :P[rint] 显示行
|:X| :X 请求加密密钥
|:append| :a[ppend] 附加文本
|:abbreviate| :ab[breviate] 输入缩写
|:abclear| :abc[lear] 删除所有的缩写
|:aboveleft| :abo[veleft] 使得分割的窗口出现在左侧或者上方
|:all| :al[l] 为参数列表的每个文件打开一个窗口
|:amenu| :am[enu] 为所有模式输入菜单项
|:anoremenu| :an[oremenu] 为所有模式输入菜单项,不会被重新映射
|:args| :ar[gs] 显示参数列表
|:argadd| :arga[dd] 增加项目到参数列表中
|:argdelete| :argd[elete] 从参数列表中删除项目
|:argedit| :arge[dit] 增加项目到参数列表中并编辑之
|:argdo| :argdo 在参数列表上的所有项目上执行一个命令
|:argglobal| :argg[lobal] 定义全局参数列表
|:arglocal| :argl[ocal] 定义本地参数列表
|:argument| :argu[ment] 转到参数列表一个指定的文件
|:ascii| :as[cii] 显示光标所在的字符的 ascii 值
|:autocmd| :au[tocmd] 输入或者显示自动命令
|:augroup| :aug[roup] 选择要用的自动命令组
|:aunmenu| :aun[menu] 删除所有模式下的菜单
|:buffer| :b[uffer] 转到缓冲区列表里的特定缓冲区
|:bNext| :bN[ext] 转到缓冲区列表里的上一个缓冲区
|:ball| :ba[ll] 为缓冲区列表里的每个缓冲区打开一个窗口
|:badd| :bad[d] 增加缓冲区到缓冲区列表
|:bdelete| :bd[elete] 从缓冲区列表删除缓冲区
|:behave| :be[have] 设置鼠标和选择行为
|:belowright| :bel[owright] 使得分割的窗口出现在右侧或者下方
|:bfirst| :bf[irst] 转到缓冲区列表里的第一个缓冲区
|:blast| :bl[ast] 转到缓冲区列表里的最后一个缓冲区
|:bmodified| :bm[odified] 转到缓冲区列表里的下一个修改过的缓冲区
|:bnext| :bn[ext] 转到缓冲区列表里的下一个缓冲区
|:botright| :bo[tright] 使得分割的窗口出现在最右侧或者下方
|:bprevious| :bp[revious] 转到缓冲区列表里的上一个缓冲区
|:brewind| :br[ewind] 转到缓冲区列表里的第一个缓冲区
|:break| :brea[k] 跳出 while 循环
|:breakadd| :breaka[dd] 增加调试器断点
|:breakdel| :breakd[el] 删除调试器断点
|:breaklist| :breakl[ist] 列出调试器断点
|:browse| :bro[wse] 使用文件选择对话框
|:bufdo| :bufdo 为所有列表内缓冲区执行命令
|:buffers| :buffers 列出缓冲区列表里的所有文件
|:bunload| :bun[load] 卸载指定的缓冲区
|:bwipeout| :bw[ipeout] 真正删除一个缓冲区
|:change| :c[hange] 替换一行或若干行
|:cNext| :cN[ext] 跳转到上一个错误
|:cNfile| :cNf[ile] 跳转到前一个文件的最后一个错误
|:cabbrev| :ca[bbrev] 类似于 ":abbreviate",但用于命令行模式
|:cabclear| :cabc[lear] 清除所有缩写,用于命令行模式
|:caddbuffer| :caddb[uffer] 通过缓冲区补充错误
|:caddexpr| :cad[dexpr] 通过表达式补充错误
|:caddfile| :caddf[ile] 加入错误信息到当前 quickfix 列表
|:call| :cal[l] 调用函数
|:catch| :cat[ch] :try 命令的一部分
|:cbuffer| :cb[uffer] 分析错误信息并跳转到第一个
|:cc| :cc 跳转到特定的错误
|:cclose| :ccl[ose] 关闭 quickfix 窗口
|:cd| :cd 改变目录
|:center| :ce[nter] 排版行,使其居中对齐
|:cexpr| :cex[pr] 从表达式里读取错误并跳转到第一个
|:cfile| :cf[ile] 读入含有错误信息的文件,并跳转到第一个
|:cfirst| :cfir[st] 跳转到指定的错误上,缺省为第一个
|:cgetbuffer| :cgetb[uffer] 从缓冲区里得到错误
|:cgetexpr| :cgete[xpr] 从表达实里得到错误
|:cgetfile| :cg[etfile] 读入含有错误信息的文件
|:changes| :cha[nges] 显示修改的列表
|:chdir| :chd[ir] 改变当前目录
|:checkpath| :che[ckpath] 列出包含的头文件
|:checktime| :checkt[ime] 检查载入缓冲区的时间标签
|:clist| :cl[ist] 列出所有错误
|:clast| :cla[st] 跳转到指定的错误上,缺省为最后一个
|:close| :clo[se] 改变当前窗口
|:cmap| :cm[ap] 类似于 ":map",但用于命令行模式
|:cmapclear| :cmapc[lear] 清除所有映射,用于命令行模式