vim替代功能don';I don’我不能和操作员一起工作

vim替代功能don';I don’我不能和操作员一起工作,vim,substitution,Vim,Substitution,使用:echo-substitute(“abc”、“a\|d”、“e”和“”)命令,我想得到类似ebc的答案。但答案仍然是abc。当我使用:s/a\| d/e/替换文本时,我可以得到ebc。我想知道原因。字符串文字有自己的反斜杠转义(请参见:help expr quote),因此您需要将反斜杠加倍,以便其中一个能够通过regexp解析器。字符串文字有自己的反斜杠转义(请参见:help expr quote)因此,您需要将反斜杠加倍,以便其中一个可以进入regexp解析器。这是一条注释,但很难格式

使用
:echo-substitute(“abc”、“a\|d”、“e”和“”)
命令,我想得到类似
ebc
的答案。但答案仍然是abc。当我使用
:s/a\| d/e/
替换文本时,我可以得到
ebc
。我想知道原因。

字符串文字有自己的反斜杠转义(请参见
:help expr quote
),因此您需要将反斜杠加倍,以便其中一个能够通过regexp解析器。

字符串文字有自己的反斜杠转义(请参见
:help expr quote
)因此,您需要将反斜杠加倍,以便其中一个可以进入regexp解析器。

这是一条注释,但很难格式化长注释(抱歉):)

报价问题总是一场噩梦

为了减少它,您可以使用“单引号”字符串\cite(@peterRinker等人)和非常神奇的 (
\v
)修饰符(无需转义+|()和其他运算符)

例如:

:echo substitute("Name Surname",'\v(\w)\w+ (\w+)','\2, \1',"") 

--姓氏,N

这是一条评论,但很难格式化长评论(抱歉):)

报价问题总是一场噩梦

为了减少它,您可以使用“单引号”字符串\cite(@peterRinker等人)和非常神奇的 (
\v
)修饰符(无需转义+|()和其他运算符)

例如:

:echo substitute("Name Surname",'\v(\w)\w+ (\w+)','\2, \1',"") 

--姓氏,N

最好对正则表达式模式使用单引号。例如,
替换('abc'、'a\|d'、'E'、'')
。此外,使用字符类也比交替使用要好。例如,
[ad]
最好对正则表达式模式使用单引号。例如,
替换('abc'、'a\|d'、'E'、'')
。此外,使用字符类也比交替使用要好。例如,
[ad]