vim替换
Vim提供了多种灵活的替换命令变体,以下是主要的替换命令变体总结:
Vim替换命令的常用变体
1. 基本格式
:[range]s/{pattern}/{string}/[flags]
2. 范围(range)变体
| 范围表示 | 说明 |
|---|---|
| 无 | 默认当前行 |
. |
光标所在行 |
1 |
第一行 |
$ |
最后一行 |
33 |
第33行 |
'a |
标记a所在行 |
.+1 |
当前行的下一行 |
$-1 |
倒数第二行 |
22,33 |
第22到33行 |
1,. |
第1行到当前行 |
.,$ |
当前行到最后一行 |
'a,'b |
标记a到标记b的行 |
% |
整个文件(等同于1,$) |
3. 替换标志(flags)变体
| 标志 | 说明 |
|---|---|
| 无 | 只替换每行第一个匹配项 |
g |
全局替换,替换所有匹配项 |
c |
确认替换,替换前询问用户 |
i |
忽略大小写 |
e |
忽略执行过程中的错误 |
4. 常用替换命令变体
全文替换
:%s/pattern/string/g:全文替换所有匹配项:g/pattern/s//string/g:等同于上一个命令:%s/pattern/string/gc:替换前确认:%s/pattern/string/gi:不区分大小写替换
当前行替换
:s/pattern/string/g:当前行所有匹配项:.s/pattern/string/g:当前行所有匹配项
指定行范围替换
:n,m s/pattern/string/g:第n行到m行:1,10 s/pattern/string/g:第1到10行:.,$ s/pattern/string/g:当前行到文件末尾:%s/pattern/string/g:全文替换(等同于1,$)
使用其他分隔符
:s#pattern#string#g:使用#作为分隔符(避免/冲突):%s+pattern+string+g:使用+作为分隔符:s@pattern@string@g:使用@作为分隔符
5. 特殊替换场景
行首/行尾替换
:%s/^/prefix/:在每行开头添加前缀:%s/$/suffix/:在每行结尾添加后缀:%s/ *$//:删除行尾空格
精确匹配单词
:%s/\<pattern\>/string/g:精确匹配单词(避免匹配部分匹配)
删除Windows换行符
:%s/^V^M//g:在Vim中删除^M(实际输入时需用Ctrl+V+Ctrl+M)
6. 其他相关命令
r:替换光标所在字符(单个字符替换,无需进入插入模式)R:进入替换模式,可连续替换多个字符c:修改命令(进入插入模式,与替换不同)
示例
-
全文替换"Vim"为"vim"并确认:
:%s/Vim/vim/gc -
将当前行的"line"替换为"lines":
:s/line/lines/g -
将第2行到第10行的"line"替换为"lines":
:2,10s/line/lines/g -
在行首添加注释符号:
:%s/^/\/\/ /g -
使用#作为分隔符避免/冲突:
:s#vivian/#sky/#g
这些替换命令变体使Vim成为强大的文本处理工具,能够高效地进行批量文本修改。

浙公网安备 33010602011771号