如何找到&用Vim中的一个替换多个表达式?

时间:2011-11-17 08:08:46

标签: vim vi

我正在将一个示例从PDF复制粘贴到Vim,我必须用替换所有" 所有都带有',以便代码有效。

那可能看起来更容易理解: 我想同时将所有foobar替换为foobar

3 个答案:

答案 0 :(得分:5)

vi

中试试
:1,$s/[“”]/"/g

然后

:1,$s/[‘’]/'/g

答案 1 :(得分:3)

使用tr作为过滤器:

Unix方式:

:%!tr “”‘’ \"\"\'\'

答案 2 :(得分:1)

如果你想用“foobar”替换所有“foo”和所有“bar”,你可以使用它:

%s/\v<(foo|bar)>/foobar/g

这将取代“foo”和“bar”,但会留下任何“foobar”。

  • %s/ - 替换整个文件
  • \v - 使用非常神奇的正则表达式语法(有关详细信息,请参阅:help magic
  • < - 匹配左侧边界
  • (foo|bar) - foo或bar
  • > - 匹配正确的单词边界
  • /foobar/ - 替换字符串
  • g - 全局(将在每次出现时发生,而不仅仅是第一次出现)

请注意,如果您只是处理标点符号,则可能需要删除此正则表达式的单词边界部分,否则它将无效。