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行 |
命令 |
功能 |
p |
粘贴到当前行的下面 |
P |
粘贴到当前行的上面 |
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 |
字数统计 |