在 vim ex 命令中输入以下命令用来替换文本内容。
现在不明白其中的正则含义。
1
sugars 2019-03-26 11:31:10 +08:00
将匹配到\v^[^>]+>\s 这个的替换为空
|
2
will0404 2019-03-26 11:33:49 +08:00
分几段来看。
%s 大概是表示字符串替换。 /a/b/ 表示把 a 替换为 b g 表示全局搜索替换,和正则的 g 应该是一个意思。 所以这里是说:把 \v^[^>]+>\s 匹配到的内容清空。至于 \v^[^>]+>\s 这个正则什么意思查表吧 |
3
ant2017 2019-03-26 11:34:31 +08:00
|
4
krixaar 2019-03-26 11:38:59 +08:00 5
% - 所有行,相当于 1,$
s/旧内容 /新内容 / - 把旧内容替换( substitute )成新内容 \v^[^>]+>\s - 旧内容 \v - 一个 tab ^ - 行开头 [^>]+ - 1 个以上不是字符">"的字符 > - 字符">" \s - 一个空白字符 新内容为空,即删除 g - 替换所有满足这个正则的内容 |
5
knightdf 2019-03-26 11:43:12 +08:00 1
把所有垂直制表符开始,下一行开头开始以非`>`组成但是以`>`+空格的字符串删掉
|
6
599316527 2019-03-26 12:37:33 +08:00
|
7
chemzqm 2019-03-26 15:43:34 +08:00 1
> \v - 一个 tab
解释错了,开头的 \v 表示使用 very magic 模式的正则,此时跟别的语言正则差不多,后面的 + 不用 \ 来转义 |
8
jdhao 2019-03-27 10:41:27 +08:00
@chemzqm 说的是正确的,\v 不是 tab,\t 代表 tab。 具体 vim 中的 character class,可以使用 :h /character-classes 查看。magic 的具体解释,可以使用 :h /magic 查看。
|
9
Aura7988 2019-03-28 10:13:18 +08:00
\v 是 vim 的 magic 设置,表示任何元字符都不用加反斜杠。所以整个表达式的意思是:
把每行不是以 > 开头的并且后面带有空白符的一串字符删掉。 |