首页 > 解决方案 > Vim 替代 - 用括号括起来 `\ref{eq:x}`

问题描述

我有一个乳胶文档,其中包含一堆形式的字符串

Eq.~\ref{eq:x}

wherex通常每次出现都有一个不同的字符串。我想用上面的替换

Eq.~(\ref{eq:x})

我可以匹配一些搜索的匹配项,/\\ref{eq:.*\}但如果你有类似的东西,这不起作用

blah Eq.~\ref{eq:x} something something \cite{this}

请注意,我不想替换\ref{eq:为在内部处理括号的乳胶宏。

标签: regexvim

解决方案


*是一个贪婪的量词,它将匹配尽可能多的字符。因此,如果您有多个}就行,.*}将匹配每个字符直到}该行的最后一个。

您应该改用非贪婪量词:

/\\ref{eq:.\{-}\}

:help \{


推荐阅读