一、三种工作模式
1.命令模式
此模式下,使用方向键及k、j、h、i移动光标位置,此外可以对文件内容进行复制、粘贴、替换以及删除等操作。
2.输入模式
此模式下,Vim可以对文件执行写操作,在命令模式下输入i、I、a、A、o、O等即可插入命令,编辑完成后敲击Esc键返回命令模式。
3.编辑模式
此模式用于对文件中指定内容进行保存、查找或替换等操作。在命令模式下键入“:”键,此时Vim窗口左下方出现“:”符号,即可输入相关指令进行操作。
执行指令后Vim会自动返回命令模式,如要直接返回命令模式,敲击Esc即可。
二、快捷方向键
快捷键 | 功能描述 |
---|
h | 光标向左移动一位 |
l | 光标向右移动一位 |
j | 光标向下移动一行 |
k | 光标向上移动一行 |
w或W | 光标移动至下一个单词的单词首 |
b或B | 光标移动至上一个单词的单词首 |
e或E | 光标移动至下一个单词的单词尾 |
nw或nW | n为数字,表示光标向右移动n个单词 |
nb或nB | n为数字,表示光标向左移动n个单词 |
三、查找文本
快捷键 | 功能描述 |
---|
/abc | 从光标所在位置向前查找字符串abc |
?abc | 从光标所在位置向后查找字符串abc |
/^abc | 查找以abc为行首的行 |
/abc$ | 查找以abc为行尾的行 |
n | 向同一方向重复上次的查找指令 |
N | 向相反方向重复上次的查找指令 |
四、替换文本
快捷键 | 功能描述 |
---|
r | 替换光标所在位置的字符 |
R | 从光标所在位置开始替换字符,其输入内容会覆盖掉后面等长的文本内容,敲击“ Esc”可结束 |
:s/a1/a2/g | 将当前光标所在行中的所有a1都用a2替换 |
:n1,n2s/a1/a2/g | 将文件中n1到n2行中所有a1都用a2替换 |
:g/a1/a1/g | 将文件中所有的a1都用a2替换 |
五、删除文本
快捷键 | 功能描述 |
---|
x | 删除光标所在位置的字符 |
dd | 删除光标所在行 |
ndd | 删除当前行(包括此行)后n行文本 |
dG | 删除光标所在行一直到文件末尾的所有内容 |
D | 删除光标位置到行尾的内容 |
:a1,a2d | 删除从a1行到a2行的文本内容 |
六、复制和粘贴文本
快捷键 | 功能描述 |
---|
p | 将剪切板中的内容粘贴到光标后 |
P(大写) | 将剪切板中的内容粘贴到光标前 |
y | 复制已选中的文本到剪贴板 |
yy | 将光标所在行复制到剪贴板,此命令前可以加字数n,可复制多行 |
yw | 将光标位置的单词复制到剪贴板 |
七、保存退出文本
快捷键 | 功能描述 |
---|
:wq | 保存并退出 |
:wq! | 保存并强制退出 |
:q | 不保存,退出 |
:q ! | 不保存,且强制退出 |
:w | 保存,但是不退出 |
:w! | 强制保存文本 |
:w filename | 另存到filename文件 |
zz | 直接退出 |
八、光标移动
快捷键 | 功能描述 |
---|
0或^ | 光标移动至当前行的行首 |
$ | 光标移动至当前行的行尾 |
n$ | 光标移动至当前行只有n行的行尾,n为数字 |
gg | 光标移动至文件开头 |
G | 光标移动至文件末尾 |
nG | 光标移动至第n行,n为数字 |
:n | 将光标快速定义到指定行的行首(编辑模式下使用) |
九、撤销及恢复操作
快捷键 | 功能描述 |
---|
u | 取消上一次操作 |
ctrl + r | 恢复上一次操作 |
十、括号查找操作
快捷键 | 功能描述 |
---|
% | 找到() [] {}等括号的另一半,以及查找begin…end,task…endtask等 |