双引号用单引号,反之亦然

Rem*_*man 11 regex vim quotes

我经常发现自己反转引号:
从双引号""到单引号'',
从单引号''到双引号"".

我知道有一种方法可以将单引号切换为双引号:
:%s/'\(\([^']*\)\)'/"\1"/g

以及将双引号切换为单引号的方法:
:%s/"\(\([^"]*\)\)"/'\1'/g

但我怎么做这两个操作起来不包括在第二交换第一互换报价?

Jay*_*Jay 5

通常,当您想要交换AB这样,你需要一个中间步骤,你更换A一些完全不同的,很可能是在文档中独一无二的,无论是一个不寻常的字符或更长的东西和疯狂的喜欢|x-monkeyz-x|.

然后,您可以将所有B转换为As,最后转换|x-monkeyz-x|为Bs.

例如,

  1. 替换所有'!X!
  2. 替换所有"'
  3. 替换所有!X!"

编辑

这样更好:在Vim中交换两个字符串的最简单方法?


ib.*_*ib. 3

如果字符串文字中没有转义引号并且不需要确保引号的正确配对,则可以使用以下命令

:%s/['"]/\="'\""[submatch(0)!='"']/g
Run Code Online (Sandbox Code Playgroud)