Vim 模式切换 | 命令集
vim 主要模式及切换
vim是一款历史悠久的多模式文本编辑器,在不同模式下有不同的功能。但实际开发过程中,主要有以下5中模式。
一、正常/普通/命令模式
Vim默认模式为命令模式,该模式主要用于控制屏幕光标的移动,字符、行的删除
。
1 光标相关操作命令集
1.1 光标移动
快捷键 | 功能 |
---|---|
小写字母:h、j、k、l | vim允许直接使用键盘上的光标移动键来上下左右移动光标,但正规的vim是用h(左移)、j(下移)、k(上移)、l(右移) 来控制光标行为 |
gg | 光标跳转到文本开始 |
(n)+ shift + g | 光标跳转到第n行 或 文本末尾 |
shift + ^ | 光标移动到该方的“行首 ” |
shift + $ | 光标移动到该方的“行尾 ” |
数字(n) + l | 光标从当前位置开始,向后移动n位 |
w | 光标跳到下一个单词的开头 (如果非单词,则是下一个字符) |
e | 光标跳到下一个单词的结尾 (如果非单词,则是下一个字符) |
b | 光标跳到上一个单词的开头 (如果非单词,则是上一个字符) |
ctrl + b | 屏幕往“后”移动一页 |
ctrl + f | 屏幕往“前”移动一页 |
ctrl + u | 屏幕往“后”移动半页 |
ctrl + d | 屏幕往“前”移动半页 |
1.2 文字删除
快捷键 | 功能 |
---|---|
x | 删除当前光标所在位置字符 |
数字(n) + x | 删除光标所在位置后n个字符(包含光标所在位置本身) |
shift + x | 删除光标所在位置的前一个字符 |
数字(n) + shift + x | 删除光标所在位置的前n一个字符 |
dd | 删除光标所在行 |
数字(n) + dd | 从光标所在行开始,删除n行 |
1.3 粘贴和复制
快捷键 | 功能 |
---|---|
yy | 复制当前行 到缓冲区 |
数字(n) + yy | 从光标所在行开始,向后复制n行 到到缓冲区 |
数字(n) +p | 将缓冲区内的n字符贴到光标所在位置 。tip:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能 |
yw | 将光标所在位置到字尾 的字符复制到缓冲区中。 |
#yw | 复制#个字符 到缓冲区 |
1.4 撤销
快捷键 | 功能 |
---|---|
u | 撤销回到上一个操作。按多次“u”可以执行多次撤销 |
ctrl + r | 撤销的恢复 |
1.5 字符更改
快捷键 | 功能 |
---|---|
cw | 更改光标所在处的字到字尾处 |
c#w | 例如,「c3w」表示更改3个字 |
二、插入模式
要进行文字输入,vim必须从命令行模式切换到插入模式。
2.1 插入模式和命令行模式相互切换
- 从命令行模式切换到插入模式有以下三种方式:
快捷键 | 功能 |
---|---|
i | 按i进入插入模式后,是从光标当前位置开始输入文字 |
a | 按a进入插入模式后,是从光标当前位置的下一个位置开始输入文字 |
o | 按o进入插入模式后,是插入新的一行,从行首开始输入文字 |
- 从插入模式切换命令行模式只需无脑
Esc
即可
三、末行模式
在末行模式中,我们可以进行文件的保存和退出,文件替换、查找字符串和列出行号等操作。
2.1 末行模式和命令行模式相互切换
- 从命令行模式切换到末行模式,只需
shift + :
即可。 - 从末行模式退回命令行模式只需
Esc
。
2.2 末行模式相关命令集
快捷键 | 功能 |
---|---|
set + nu | 列出行号 |
set + nonu | 取消行号 |
数字(n) | 在冒号后输入一个数字后回车确认,光标会跳转到该行 |
w! | 单独w表示保存文件;w!表示强制保存文件 |
q! | 单独q表示退出文件;q!表示强制退出文件 |
/ + 关键字 | 查找关键字,如果第一次找的关键字不是您想要的,可以一直按n会往后寻找到您要的关键字为止 |
? + 关键字 | 查找关键字,如果第一次找的关键字不是您想要的,可以一直按n会向前寻找到您要的关键字为止 |
四、视图模式:批量化注释和删除注释
4.1 命令模式和视图模式相互切换
由命令模式切换到视图模式只需Ctrl + v
即可;而由视图模式回退命令模式只需无脑ESC
即可。
4.2 批量化注释
首先通过Ctrl + v
切换到视图模式,然后通过j/k
来旋转待注释的区域,接着输入shift + i
后输入//
,最后Esc
退出视图模式即可。
【动画展示】:
4.3 批量化删除注释
批量化删除注释同样需先通过Ctrl + v
切换到视图模式,然后通过h/j/k/l
来选中待删除注释区域,最后输入d
命令即可。
【动画展示】:
五、替换模式
5.1 命令模式和替换模式相互切换
在命令模式下输入shift + r
即可进入替换模式,此时新输入的文本将直接替代/覆盖已经存在的内容,直至点击ESC
返回命令模式。
如果只是单纯的r
命令,则是替换当前单个字符。
快捷键 | 功能 |
---|---|
r | 替换 光标所在处的字符 |
R | 替换 光标所到之处的字符,直到按下ESC 键为止 |
六、五大模式切换关系图及查看其他模式
6.1 五大模式切换关系图
6.2 其他模式
在底行模式直接输入help vim-modes
即可查看当前vim中的所有模式。