:s/str1/str2/ 用str2 替换行中首次出现的 str1
:s/str1/str2/g 用 str2 替换行中所有出现的 str1
:.,$ s/str1/str2/g 用str2替换正文当前行到末尾所有出现的str1
:1,$ s/str1/str2/g 用str2替换正文中所有出现的str1
:g/str1/s//str2/g 功能同上.:%s/str1/str2/g 实现全局替换
由以上可知:
g放在命令末尾, 表示对一行中字符串的每次出现进行替换;
不加g, 表示只对字符串的首次出现进行替换,
g放在命令开头, 表示对正文中所有包含搜索字串的行进行替换.
s表示替换功能
vim 的正则匹配规则:
\d 数字 [0-9]
\D 非数字 [^0-9]
\x 十六进制数字 [0-9a-fA-F]
\X 非十六进制数字 [^0-9a-fA-F]
\s 空白字符 [ ] ( 和 )
\S 非空白字符 [^ ] (非 和 )
\l 小写字母 [a-z]
\L 非小写字母 [^a-z]
\u 大写字母 [A-Z]
\U 非大写字母 [^A-Z]
& 所有查找时匹配到的东西
\[Ee] 更改大小写的选择区域的终点
:%s/\s\+$// 删除行尾多余的空格