regex - 一个 Vim 命令,用于插入一段文本以匹配行,除非它已经存在

标签 regex vim latex replace

编辑 LaTeX 文档时,我希望在具有 \begin{‹environment›} 的每一行的末尾附加 % (fold) 字符串其中的命令(适用于任何 ‹environment›)。

我尝试过使用以下 Vim 命令:

:g/\\begin\{\w+\}/ s/$/\% \(fold\)/

但是对于已经存在的行,它会将 % (fold) 字符串加倍。

如何修改上面的命令以插入 % (fold) 仅当它不存在时?

最佳答案

只需修改:global(或:substitute)命令中的模式 只匹配不以 % (fold):

结尾的行
:g/\\begin{\w\+}/ s/\(% (fold)\)\@<!$/% (fold)/

:g/\\begin{\w\+}\(.*% (fold)$\)\@!/ s/$/% (fold)/

关于regex - 一个 Vim 命令,用于插入一段文本以匹配行,除非它已经存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8923552/

相关文章:

vim - 为 VIM 安装 Vundle

vim - 在 Vim 中,您可以在 'set cursorline' 上停止空白字符的颜色变化吗?

javascript - 正则表达式:如何像 DOM 渲染器那样删除多余的空格/换行符(处理)

php - 正则表达式字符串中断

带有可选字符的 5 位数字的正则表达式

ubuntu - Texlive 从 Sharelatex 图像从 2016 年降级到 2013 年

haskell - 将任何文学 Haskell 渲染为 PDF、HTML 或类似文件

javascript - 使用 javascript 检查表单

vim - NERDTree:未创建节点

latex - 在 LaTeX 中水平和垂直居中文本