我正在将一个示例从PDF复制粘贴到Vim,我必须用“
替换所有”
和"
所有‘
和’
都带有'
,以便代码有效。
那可能看起来更容易理解:
我想同时将所有foo
和bar
替换为foobar
。
答案 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
- 全局(将在每次出现时发生,而不仅仅是第一次出现)请注意,如果您只是处理标点符号,则可能需要删除此正则表达式的单词边界部分,否则它将无效。