-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathchapter01_像记事本一样使用vim
139 lines (111 loc) · 5.83 KB
/
chapter01_像记事本一样使用vim
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
1.1 标记含义
下面讲解一下后面会涉及到的部分标记所代表的含义
| 标记 | 含义
| x | 按一次 x
| dw | 依次按d、w
| <C-n> | 同时按下<Ctrl> 和 n ;注意是同时按下
| g<C-n> | 按g,然后同时按下<Ctrl>和n
| <C-n>0 | 同时按<Ctrl> 和 n,然后按下0
| <C-n><C-=> | 同时按<Ctrl> 和 n,然后<Ctrl> 和 =
| |
| 占位符 |
| f{char} | 按f,后面跟任意字符
| `{a-z} | 按`,后面跟任意小写字母 ;注意`是英文输入法的符号
| m{a-zA-Z} | 按m,后面跟任意小写或大写字母
| {n}d | 按下任意数值(数值可以7,28,766等),接着按下d
| |
| 特殊按键 |
| <CR> | 按回车键
| <Ctrl> | 按下控制键
| <Up> | 按上光标键
| <Down> | 按下光标键
| <Space> | 按下空格键
| |
| |
| |
温馨提示:建议读者在英文输入法模式下完成实验。
1.2 模式
vim 里面主要有4种模式,分别是普通模式、插入模式、可视模式和命令行模式。
a. 普通模式
通过vim指令打开文件,默认就是普通模式,你现在所处的就是普通模式。
普通模式就像是一个“阅读模式”,在这个模式下不能随意编辑文本,在该模式下
很多按键都不再代表一个字符,而是代表一种功能,比如d表示delete;y表示yank(复
制);c表示cut剪切。在该模式下,几乎每一个按键都对应一个功能,由此一窥vim的强
大。
[lab]
通过鼠标或光标键将光标移动到下面任意一行*号上,按下指令dd.
(按下按键hjkl看看有什么效果)
***********
**********
*********
********
*******
******
b. 插入模式
插入模式就是我们最熟悉的“编辑模式”。在这个模式下,普通模式下对应的大部分快捷键
都会“失效”,按下后没有炫酷的效果而只是输出单纯的字符。只需要简单地按下i,就能进
入插入(insert)模式。实际上有很多指令都能从普通模式进入插入模式,比如指令cc,但
它会剪切掉当前光标所在行,然后再进入插入模式;而如果只想单纯地进入插入模式进行
编辑,那就使用指令i。在插入模式下,Enter键输出换行,Backspace键删除字符,和一般的
编辑器一样,大胆放心地使用!退出插入模式返回到普通模式,使用指令<C-[>,即“同时”
按下<Ctrl>和[。
[lab]
使用插入模式补全下面的输出为“Hello world!”。同时使用指令<C-[>退回到普通模式。
printf("Hello !")
c. 可视模式
可视模式就像“块选择”模式。它允许我们选择一大段区域进行操作,而无需以字符/行的级别
操作。可视化模式的关键指令是v,他也有种3模式。
按下指令v之后移动光标,就会自动选择高亮部分内容,并且高亮内
容在光标起点与终点之间。(再按一次v可以取消高亮选区,按下o可以改变光标位置)
[lab]
尝试将光标移动到点o,按下v,移动光标到e,再按下d。
观察能否对一块区域进行delete操作。
***********************************
****+o-----------------------------
-----------------------------------
---------------------e+************
***********************************
***********************************
按下<Shift-v>选区将以行为单位
[lab]
删除中间4行*
***********************************
****+o-----------------------------
-----------------------------------
---------------------e+************
***********************************
***********************************
按下<C-v>选区将以块为单位(我觉得像以列为单位)
[lab]
删除所有符号x
***********************************
****+o-----xxxxxxxx----------------
-----------xxxxxxxx----------------
-----------xxxxxxxx--e+************
***********************************
***********************************
现在你已经大致了解了这3种模式。细心观察不难发现在对文件进行一些特殊操作的时候,我们
都是处于普通模式,只有在编写具体内容的时候我们才处于插入模式。这是一种很棒的设计!
2种不同的业务对应2种不同的模式。当我们编写代码时,需要的是“插入”功能;但是当我们进行
一些复杂的修改操作时,需要的是更专业更强大的快捷功能。多模式的划分应运而生。
而且一个优秀的程序员,更多的时候是处于“普通模式”下冷静地思考,而不是一味地处于“插入模
式"下莽干。
d. 命令行模式
到此为止,你已经可以像使用普通记事本一样使用vim了,这已经是一个很大的进步。如果没有
指导,很多人一开始连一个字符都不会插入(包括我)。但是最后还有关键的一步,那就是文件保存。
vim保存文件一般通过命令行模式。vim不仅可以通过快捷键来执行各种功能,还可以通过输入命
令行来执行功能,没错,就像shell一样。使用方法很简单,在普通模式下直接输入:(注意是英
文输入法),你会发现窗口最下面出现了一个冒号,之后你输入的指令都将呈现在那个位置,输
入指令完毕后,按下回车键vim就会去执行该指令了。
下面是常用指令
:write命令表示写入保存
:quit命令表示退出
:all表示操作对象是vim打开的全体文件
一般使用命令的首字母作为缩写直接执行,比如
:wa 表示保存所有文件
:qa 表示退出所有文件
[lab]
输入:wa, 保存所有修改
输入:qa, 退出所有文件(vim也自动退出)
之后重新使用vim打开文件,观察此前对文件的修改是否生效。
至此,你已经可以像使用记事本一样随心所欲地使用vim了。恭喜恭喜!