将两个$符号之间的所有内容替换为\(和\)之间的文本

时间:2019-03-05 10:57:49

标签: vim

我希望将$符号之间的文本替换为

中的“ \(”和“ \)”之间的文本
replace $this text$

通过

replace \(this text\)

我已经尝试使用命令“%s / \ $ \(。* \)\ $ / \(\ 1 \)/”

replace $this text$ and $this also$.

替换为

replace \(this text$ and $this also\).

如何避免这种情况?

1 个答案:

答案 0 :(得分:2)

如果我理解您的问题,我认为您想要:

:%s/\$\([^\$]*\)\$/\\(\1\\)/g

说明:

  • 您需要转义替换字符串中的\
  • 在搜索字符串中,您需要[^\$]*而不是.*,即,一个0或多个字符(不是美元符号)的序列。

将替换以下文本:

replace $this text$
replace $this text$ and $this also$.

带有此文本:

replace \(this text\)
replace \(this text\) and \(this also\).