vim 替换
命令格式 |
说明 |
备注 |
基本替换 |
||
:s/str1/str2/ |
替换当前行第一个str1为str2 |
|
:s/str1/str2/g |
替换当前行所有str1为str2 |
个人而言较为常用 |
:n,$s/str1/str2/ |
替换第 n 行开始到最后一行中每一行的第一个str1为str2 |
(n 为数字,当 n 为 . 时,表示从当前行开始到最后一行) |
:n,$s/str1/str2/g |
替换第 n 行开始到最后一行中每一行所有str1为str2 |
|
:%s/str1/str2/ |
替换每一行的第一个str1为str2 |
等同于 :g/str1/s//str2/ |
:%s/str1/str2/g |
替换每一行中所有str1为str2 |
等同于 :g/str1/s//str2/g |
使用+作为分隔符,其替换与被替换的字符串中可以有 "/", "/" 不会被作为分隔符中 |
||
:%s+str1+str2+ |
替换每一行中所有str1为str2,str1 和 str2 中可以有"/" |
|
:5,15s/dog/cat/g |
替换5 - 15 行中的所有 |
vim 删除
命令 |
说明 |
备注 |
d$ 或 D | 从当前位置删除到行尾 ("d$" 的缩写) |
|
d^ |
删除至行首 |
|
dd | 删除整行 |
|
dw |
删除一个单词(不适用中文) |
|
dG |
删除到文档结尾处 |
|
d1G |
删至文档首部 |
vim 插入模式
命令 |
说明 |
备注 |
i |
在当前字符的左边插入 |
|
I |
在当前行首插入 |
|
a | 在当前字符的右边插入 |
|
A |
在当前行尾插入 |
|
o |
在当前行下面插入一个新行 |
|
O | 在当前行上面插入一个新行 |
|
Go |
最后插入一空行 |
|
GO |
倒数第二行插入一空行 |
|
ggo | 第二行插入一空行 |
|
ggO | 首行插入一空行 |
vim 复制/粘贴
命令 |
说明 |
备注 |
yy |
复制当前行 |
|
nyy |
n表示大于1的数字,复制n行 |
|
yw |
从光标处复制至一个单子/单词的末尾,包括空格 |
|
ye |
从光标处复制至一个单子/单词的末尾,不包括空格 |
|
y$ |
从当前光标复制到行末 |
|
y0 |
从当前光标位置(不包括光标位置)复制之行首 |
|
y3l |
从光标位置(包括光标位置)向右复制3个字符 |
|
y5G |
将当前行(包括当前行)至第5行(不包括它)复制 |
|
y3B |
从当前光标位置(不包括光标位置)反向复制3个单词 |
|
p 或者快捷键 (本人Ctrl+ Shift + v) |
粘贴到当前光标位置 |