vim 常用命令删除、撤销、恢复、复制、粘贴、替换

1、撤销与恢复撤销

命令 说明
u 撤销上一命令对编辑缓冲区的修改。
U 恢复当前行(即一次撤销对当前行的全部操作)。
. 重复上一命令对编辑缓冲区的修改。
ctrl + r u 的逆向操作,恢复上一命令对编辑缓冲区的修改。

2、复制与粘贴

命令 说明
y0 复制从当前光标(不包含)左侧开始到该行行首的所有数据。
y$ 复制从当前光标(包含)开始到该行行尾的所有数据。
yy 复制当前行。
nyy 复制从当前行(包含)开始的n行。
y1G 复制从当前行(包含)开始到第一行(包含)的所有数据。
yG 复制从当前行(包含)开始到最后一行(包含)的所有数据。
p 将复制的内容粘贴到下一行,原有的内容按顺序后移。
np 将复制的内容粘贴到下一行,粘贴n次,原有的内容按顺序后移。
P 将复制的内容粘贴到上一行,原有的内容按顺序后移。
nP 将复制的内容粘贴到上一行,粘贴n次,原有的内容按顺序后移。
J 将当前行与下一行数据合并成一行。

3、行内删除

命令 说明
x 删除当前光标处的字符。
nx 删除当前光标处的n个字符。
X 删除当前光标左侧的字符。
nX 删除当前光标左侧的n个字符。
d0 删除从当前光标左侧到本行行首的字符。
d^ 删除从当前光标左侧到本行行首的字符。
d$ 删除从当前光标到本行末尾的字符。
D 删除从当前光标到本行末尾的字符。
dh 删除当前光标左侧的字符。
dl 删除当前光标处的字符。
d->move 删除当前光标到新光标位置的字符。
dw 向后删除从当前光标到下一个单词起始处的字符,不包含下一个单词的第一个字符,单词以空格分隔。
dnw 向后删除从当前光标开始,包含当前单词在内的n个单词,单词以空格分隔。
de 向后删除从当前光标到当前单词结尾处的字符,包含当前单词的最后一个字符,单词以空格分隔。
dne 向后删除从当前光标开始,包含当前单词在内的n个单词,单词以空格分隔。
db 向前删除从当前光标(不包含)左侧到当前单词起始处的字符,包含当前单词的第一个字符,单词以空格分隔。
dnb 向前删除从当前光标(不包含)左侧开始,包含当前单词在内的n个单词,单词以空格分隔。
df[x] 删除当前光标(包含)至字符x(包含)的所有数据。

4、行间删除

命令 说明
dd 删除当前。
ndd 删除从当前行开始的n行。
dj 删除当前行和下一行。
dk 删除当前行和上一行。
d1G或dgg或:1,.d 删除当前行(包含)所在行到第一行(包含)的所有数据。
dG或:.,$d 删除当前行(包含)所在行到最后一行(包含)的所有数据。
:nd 删除指定的第n行。
:n1,n2d 删除指定范围[n1,n2]的行。
:1,$d或:%d 删除所有行。
:g/^$/d 删除所有空行。

5、正则表达式删除
正则表达式删除的原理是通过正则表达式查找内容,然后将对应的内容替换为空,看起来像删除一样。

命令 说明
:%s/\d//g 删除所有数字。
:%s/\s//g 删除所有空格。
:%s/\n+$//g 删除文档末尾回车产生的空行。

6、进入 Insert 模式

命令 说明
i 在当前光标处进行编辑。
I 在行首插入。
A 在行末插入。
a 在当前光标后插入。
o 在当前行后插入一个新行。
O 在当前行前插入一个新行。

7、退出并保存

命令 说明
:q! 强制退出,不保存。
:q 退出。
:wq! 强制保存并退出。
:w 保存文件。
:w <文件路径> 另存为。
:saveas <文件路径> 另存为。
:x 保存并退出。
:wq 保存并退出。

8、替换
语法为:
:[addr]s/src/dist/[option]

命令 说明
[addr] 表示检索范围,省略时表示当前行。
[addr] “1,20” :表示从第1行到20行。
[addr] “%” :表示整个文件,同“1,”。
[addr] “. ,” :从当前行到文件尾。
s 表示替换操作。英文全称:substitute
src 源字符串:如果在源字符串和目的字符串中出现特殊字符,需要用”\”转义 如 \t。
dist 目的字符串:如果在源字符串和目的字符串中出现特殊字符,需要用”\”转义 如 \t。
[option] 表示操作类型,g 表示全局替换。
[option] c 表示进行确认。我们有很多时候会需要某个字符(串)在文章中某些位置出现时被替换,而其它位置不被替换的有选择的操作,这就需要用户来进行确认。
[option] p 表示替代结果逐行显示。
: s/vivian/sky/ 替换当前行第一个 vivian 为 sky
: s/vivian/sky/g 替换当前行所有 vivian 为 sky
:%s/vivian/sky/ 替换每一行第一个 vivian 为 sky
:%s/vivian/sky/g 替换每一行所有 vivian 为 sky

9、g命令
表示查找到 pattern 匹配的内容,然后对其执行 cmd 命令。语法为:
:g/pattern/cmd

命令 说明
g 表示检索命令,我推测是 grep 的缩写。
pattern 正则表达式
cmd 命令行,表示查找到 pattern 匹配的内容,然后对其执行 cmd 命令。
:g/vivian/s//sky/ 替换每一行第一个 vivian 为 sky
:g/vivian/s//sky/g 替换每一行所有 vivian 为 sky

注意注意注意:n表示阿拉伯数字

发布了179 篇原创文章 · 获赞 296 · 访问量 164万+

猜你喜欢

转载自blog.csdn.net/claram/article/details/103363283