Vim常用命令总结
目录
1.移动光标
| 命令 | 功能 |
|---|
l或Right | 向右移动一个字符 |
h或Left | 向左移动一个字符 |
j或Down | 向下移动一行 |
k或Up | 向上移动一行 |
0 | 移动到当前行的行首 |
[[ | 移动到代码块开头 |
][ | 移动到代码块末尾 |
^ | 移动到当前行的第一个非空字符 |
$ | 移动到当前行的末尾 |
A | 移动到当前行的末尾 |
w | 移动到下一个单词或标点符号的开头 |
W | 移动到下一个单词的开头,忽略标点符号 |
b | 移动到上一个单词或标点符号的开头 |
B | 移动到上一个单词的开头,忽略标点符号 |
Ctrl-f或PgDown | 向下翻一页 |
Ctrl-b或PgUp | 向上翻一页 |
12G | 移动到第 number 行。例如,12G 移动到文件的第12行 |
GG | 移动到文件末尾 |
gg | 移动到文件末头 |
2.基本编辑
| 命令 | 功能 |
|---|
i | 在光标前插入文本 |
a | 在光标后插入文本 |
o | 当前行的下方打开一行 |
O | 当前行的上方打开一行 |
u | 撤销更改 |
ctrl + r | 重做 |
| 命令 | 功能 |
|---|
x | 删除当前字符 |
3x | 删除当前字符及其后的两个字符 |
dd | 删除当前行 |
5dd | 删除当前行及随后的四行文本 |
dW | 删除从光标位置开始到下一个单词的开头 |
d$ | 删除从光标位置开始到当前行的行尾 |
do | 删除从光标位置开始到当前行的行首 |
d^ | 从光标位置开始到文本行的第一个非空字符 |
dG | 从当前行到文件的末尾 |
d20G | 从当前行到文件的第20行 |
| 命令 | 功能 |
|---|
yy | 复制当前行 |
5yy | 复制当前行及随后的四行文本 |
yW | 复制从当前光标位置到下一个单词的开头 |
y$ | 复制从当前光标位置到当前行的末尾 |
y0 | 复制从当前光标位置到行首 |
y^ | 复制从当前光标位置到文本行的第一个非空字符 |
yG | 复制从当前行到文件末尾 |
y20G | 复制从当前行到文件的第20行 |
3.查找和替换
| 命令 | 功能 |
|---|
:%s/Line/line/gc | 将整个文件中的单词“Line”更改为“line”,需要用户确认才替换 |
: | 冒号字符运行一个 ex 命令 |
% | 指定要操作的行数。% 表示从第一行到最后一行;而1,$ 表示从第一行到文件的最后一行。如果省略了文本行的范围,那么操作只对当前行生效 |
s | 指定操作。在这种情况下是替换(查找与替代) |
/Line/line | 查找类型与替代文本 |
g | 全局,对文本行中所有匹配的字符串执行查找和替换操作。若省略 g,则只替换每个文本行中第一个匹配的字符串。 |
c | 需要用户确认的替换命令,省略c则直接替换 |
需要确认时会提示:replace with Line (y/n/a/q/l/^E/^Y)?,用户进行进一步处理
| 命令 | 功能 |
|---|
y | 执行替换操作 |
n | 跳过这个匹配的实例 |
a | 对这个及随后所有匹配的字符串执行替换操作 |
q 或 ESC | 退出替换操作 |
l | 执行这次替换并退出。l 是 “last” 的简写 |
Ctrl-e或Ctrl-y | 向下滚动和向上滚动,用于查看建议替换的上下文 |
4.状态
| 命令 | 功能 |
|---|
ctrl + g | 当前行信息 |
g + ctrl + g | 字数统计 |
