命令 | 左右 |
---|---|
i |
进入编辑模式 |
I |
行首插入 |
a |
在光标后面开始输入文字 |
A |
行尾插入 |
o |
新起一行输入文字 |
O |
在上一行插入 |
v |
批量操作 |
V |
整行的选中 |
control + v |
块状操作 |
命令 | 描述 |
---|---|
ctrl + h |
删除上一个字符 |
ctrl + w |
删除上一个单词 |
ctrl + u |
删除当前行 |
ctrl + a |
行首 |
ctrl + b |
行尾 |
gi |
快速回到最后一次编辑的地方并且插入 |
hjkl
命令 | 描述 |
---|---|
w/W |
移动到下一个 word/WORD 开头 |
e/E |
移动到下一个 word/WORD 尾 |
b/B |
回到上一个 word/WORD 开头 |
word指的是非空白分隔符的单词, WORD 以空白分隔符的单词
使用 f{char}
可以移动到char字符上, t移动到char 的前一个字符
如果一次有搜索到, 可以用分号 ;
或者 ,
继续搜索改行下一个/上一个
命令 | 描述 |
---|---|
0 |
移动到行首 |
$ |
移动到行尾 |
^ |
移动到第一个非空白字符 |
g_ |
移动到行尾非空白字符 |
命令 | 描述 |
---|---|
gg |
文件开头 |
G |
文件结尾 |
H/M/L |
快速跳转到屏幕的开头、中间和结尾 |
ctrl + u / crtl + f |
上下翻页 |
zz |
把屏幕设置为中间 |
增加字符: i/a/o
快速删除: 如何删除一个字符和单词呢?
normal
模式下x
快速删除一个字符normal
模式下d
快速删除一个单词normal
模式下daw
删除一个单词normal
模式下面dd
可以删除一个行normal
模式下dt*
表示删除某段内容, 直到 * 为止
其中 x 和 d 都是可以搭配数字一起是用。
比如 2d
表示删除两行 。 4x
表示删除四个服
修改: 删除之后改为我们希望的文本内容
r(replace)/c(change)/s(substitute)
: r可以替换一个字符, s 替换并且插入模式, c 配合文本对象快速修改内容
R
: 可以不断的替换当前字符
最常用的就是 c
的操作
查询操作:
/ 或者 ?
| 前向或者反向查询
n 或者 N
| 跳转到下一个或者上一个匹配
* 或者 #
| 单词的前向或者后巷匹配
命令::[range]s[ubstitute]/{pattern}/{string}/[flags]
- range 表示范围, 比如: 10, 20 表示10-20行, % 表示全部
- pattern 表示要替换的欧式
- string 表示替换后的文本
- flags
- g(global)表示全局范围内执行
- c(confirm)表示缺人,可以缺人或者拒绝修改
- n(number)报告匹配到的次数而不替换, 可以用来查询匹配次数
例如需要把文本中的self
替换为this
: :% s/self/this/g
例如我们需要精准替换: :% s/\<quack\>/main/g
命令 | 描述 |
---|---|
u |
撤销操作 |
ctrl + r |
撤销 上一步的撤销操作 |
有几个相关概念: Buffer、窗口、Tab 作为了解作用 ...... 如果以后需要使用再了解就OK
语法命令: [number]<command>[text object]
number 表示次数、command 是命令, d(delete)、c(change)、y(yank)
text object 是要操作的文本对象, 比如单词w, 句子s, 段落p
示例:
viw
- 选中单词
vaw
- 选中单词也会选中空格
vi"
- 就可以快速选中双引号内的内容
ci"
- 快速删除双引号中的内容, 并且进入插入模式
记住四个常用命令 d - 删除 c - 修改并且插入 v - 选中 y - 复制
命令 | 描述 |
---|---|
y |
复制 |
yy |
复制一行 |
d |
剪切 |
p |
粘贴 |
可以看做一些列命令的结合
使用 q 来录制命令, 再次使用 q 结束录制
使用 q{register}
选择需要保存的寄存器
使用 @{register}
回放命令
例如要给所有的url 加上双引号的需求:
q a
--> I
--> 插入行首输入引号 --> A
--> 移动行尾, 输入引号 --> q
选中所有行, 输入进入 normal 模式, normal @a
回车就可以了
ctrl + n / ctrl + p
- 补全单词
ctrl + x / ctrl + f
- 补全文件名
ctrl + x / ctrl + o
- 补全代码(需要开启文件类型检测, 安装插件)
命令 | 描述 |
---|---|
:syntax on |
打开高亮 |
:set nu |
打开行数统计 |
:set hls |
搜索结果高亮 |
:set incsearch |
可以一边搜索一边高亮 |
:ctrl + t |
可以回放上一个命令 |