regex - Vim-substitute 命令插入重复项

标签 regex vim substitution

我被 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/

相关文章:

python - 用正则表达式替换文本

vim - 我可以在 vim 中围绕 block 注释进行抽取(复制)吗?

Vim:在正常模式下快速更改视口(viewport)

python - 解决 RestructuredText 中的替换

php - 拆分字符串中的第一个空格和最后一个空格并限制输出的大小 3

使用反向引用和哈希时的 Ruby gsub 问题

python - Pandas:有效地更改多列中的多个值

regex - Vim:解析来自全局的地址字段

java - 如何从java中的相同正则表达式模式获得多个答案

vim - 类似FZF的方式快速切换目录?在 Vim FZF 中包含隐藏文件?