我需要搜索并替换这个:
ExecIf($["${debug}" = "1"]?NoOp
用这个:
GoSub(chanlog,s,1(1,[${CHANNEL}]
我似乎无法在 vim 中执行此操作,而且我不确定需要转义什么,因为我尝试过的都不起作用。
最佳答案
如果你想改变一个有很多标点字符的长字符串,并且它是一个完全匹配(你不希望它们中的任何一个被视为正则表达式语法)你可以使用 nomagic
选项,将搜索模式解释为文字字符串。
:set nomagic
:%s/ExecIf($["${debug}" = "1"]?NoOp/GoSub(chanlog,s,1(1,[${CHANNEL}]/
:set magic
您仍然需要注意分隔符(s///
命令的斜线),但您可以为此使用任何字符,它不一定是斜线,所以当你有这样的东西并且在搜索或替换字符串中有斜杠时,只需选择其他东西,比如 s@foo@bar@
或 s:bar:baz:
.
关于regex - 我如何需要在 vim 中转义搜索字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11286925/