我被 Vim 的 substitute
中的一个行为绊倒了-命令我不能
真正遵循:
给定以下包含 &&
的代码行我想要的顺序
替换 &&
与 &&
和换行符:
return a && b
在我的第一次尝试中,我只是使用 s/&& /&&^M/g
( ^M
是通过 Ctrl-V
<Enter>
插入的)。
这会产生以下代码:
return a && &&
b
插入第二个 &&<space>
的替换究竟是如何执行的? ?
我预计第一个(也是唯一一个匹配)是 &&<space>
这场完整的比赛是
替换为&&^M
?
问题不在于如何执行正确的替换 - 我最终
使用\zs
重置比赛开始的 token 并仅插入
新队。
我只是想了解为什么会引入重复。
最佳答案
您遇到的问题是替换命令将 &
视为替换中的特殊标记,以表示匹配的文本。你需要逃避它。
:s/&& /\&\&^M/g
关于regex - Vim-substitute 命令插入重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11537112/