vim 普通模式
在普通模式中用的编辑器命令,比如移动光标,删除文本等等,这些都是vim启动后的默认模式。
一、浏览文本
在普通模式下,可以使用移动游标的方式来浏览当前文本的上下文。
1
2
3
4
5
6
h # 左移
l # 右移
j # 下移
k # 上移
w # 移动至下一个单词
b # 移动至上一个单词
二、删除文本
在普通模式下,可以使用以下命令来进行当前文本的删除操作。
1
2
3
4
5
6
7
8
x # 删除游标所在的字符
X # 删除游标所在的前一个字符
dd # 删除游标所在的一整行
dw # 删除一个单词
D # 删除游标所在的位置直到行尾
d^ # 删除游标所在的位置直到行首
dG # 删除游标所在的位置直到文档结尾处
d1G # 删除游标所在的位置直到文档首部
三、vim重复命令
1、重复执行上次命令
普通模式下的小数点.
表示重复上一次的命令操作。举个例子,在普通模式下输入dd
删除整行后,再按下.
也会删除整行。
2、执行指定次数相同的命令
普通模式下的N<command>
中的N
表示重复命令的次数。举个例子,输入10dd
表示删除10行文本,输入5x
表示删除5个连续字符。
四、游标快速跳转定位
在普通模式下,为了快速找到对应行数的文本,可以使用以下命令进行快速定位。
1
2
3
nG # 游标移动至第n行
gg # 游标移动至第1行
G # 游标移动至最后一行
解决文本没有显示行号的问题:
- 若当前处于普通模式,需按下
i
进入命令模式 - 在命令模式下,输入
:set num
后即可显示行号
小技巧 完成跳转后,可按下组合快捷键 Ctrl+o
快速回到跳转前光标所在的位置。该技巧的应用场景——你在写代码时,突然想到有个 bug需要修复,这时候你跳转到对应的行数去改好了,这时只需按下 Ctrl+o
就可以回到你之前写代码的位置。
五、行内快速跳转定位
在普通模式下,可以使用以下命令在行内以单词为单位进行跳转。举个例子,
1
2
3
4
5
6
7
8
w # 到下一个单词的开头
e # 到当前单词的结尾
b # 到前一个单词的开头
ge # 到前一个单词的结尾
0或^ # 到行头
$ # 到行尾
f<字母> # 从游标当前所在位置向后搜索并跳转到第一个匹配的位置
F<字母> # 从游标当前所在位置向前搜索并跳转到第一个匹配的位置
六、复制及粘贴文本
在普通模式下,可以使用命令y
进行文本复制,然后使用命令 p
进行文本粘贴。
1
2
3
4
5
6
7
yy # 复制游标所在的整行(3yy表示复制3行)
y^ # 复制至行首,或y0。不含光标所在处字符
y$ # 复制至行尾。含光标所在处字符
yG # 复制至文本末
y1G # 复制至文本开头
p(小写) # 代表粘贴至光标后(下)
P(大写) # 代表粘贴至光标前(上)
七、剪切及粘贴文本
在普通模式下,删除命令dd
等同于剪切。举个例子,首先使用命令dd
删除当前行,然偶胡找到要粘贴的位置,最后使用命令 p
进行粘贴。这一点可以实现一个很爽快的功能——交换上下行。
1
2
3
4
dd # 剪切
5G # 光标移动至第5行
p(小写) # 粘贴至光标后(下)
P(大写) # 粘贴至光标前(上)
vim 插入模式
在普通模式下,按下i
键(插入)或a
键(附加)键都可以进入插入模式。在当前模式中,大多数按键都会向文本缓冲中插入文本。
在插入模式中,按下ESC
键可以退出当前模式,回到普通模式。
一、编辑文本
在普通模式下,可以使用以下命令从相应的位置进入插入模式,并进行文本的输入和编辑。
1
2
3
4
5
6
i # 在当前光标处进行编辑
I # 在行首进行编辑
A # 在行末进行编辑
a # 在光标后进行编辑
o # 在当前行后插入一个新行
O # 在当前行前插入一个新行
vim 命令行模式
在普通模式下,按下 :
键可以进入命令行模式。在当前模式中,可以输入能被解释并执行的文本。举个例子,执行命令需按下:
键,在命令执行之后,vim将返回到命令行模式之前的模式——通常是普通模式;搜索需按下/
和?
键,过滤命令需按下!
键。
一、退出vim
在命令行模式下,可以使用以下命令可退出当前模式。
1
2
3
4
5
6
7
:q! # 强制退出,不保存
:q # 保存
:wq! # 强制退出并保存
:wq # 保存并退出
:x # 保存并退出
:w 文件路径 # 另存为
:saveas 文件路径 # 另存为