【问题标题】:Find and replace whole words in vim在 vim 中查找和替换整个单词
【发布时间】:2010-12-19 04:59:23
【问题描述】:

要在 vim 中查找和替换单词的所有实例,我使用

%s/word/newword/g

如何更改此设置,使其仅查找作为整个单词的“单词”实例?

【问题讨论】:

标签: regex vim editor replace


【解决方案1】:

对于 PCRE 兼容的搜索和替换,您可以使用 perldorubydo 命令,如下所述:http://vim.wikia.com/wiki/Perl_compatible_regular_expressions

例如:

:perldo s/\bword\b/newword/g

【讨论】:

    【解决方案2】:

    对于区分大小写的替换..您可以使用“\C”

    :%s/\<word\>\C/newword/g
    

    它只用新词替换“单词”,而其他单词,如 Word、WORD... 未被替换。

    【讨论】:

    • 为什么需要 \C,什么时候可以简单地使用 :%s/\/newword/g。你能强调一下使用 \C 的重要性吗?
    • \C 只有在我们想要区分大小写的搜索时才需要。
    【解决方案3】:

    您可以使用\&lt; 匹配单词的开头和\&gt; 匹配结尾:

    %s/\<word\>/newword/g
    

    【讨论】:

    • 那行得通。这是正则表达式语法,还是仅在 vim 中有效?
    • 这是 Vim 特定的正则表达式语法。例如,Perl (PCRE) 使用 \b...\b。
    • 可惜Vim不支持\b...\b
    • 您可以在 Vim 中使用 PRCE 表达式,方法是使用“perldo”命令访问 perl。 :perldo s/\bword/newword/g
    • 有没有快速输入\&lt;\&gt;的捷径?
    猜你喜欢
    • 2020-09-29
    • 1970-01-01
    • 2014-11-08
    • 1970-01-01
    • 2016-08-14
    • 2012-10-27
    • 2011-04-09
    • 2011-11-13
    • 1970-01-01
    相关资源
    最近更新 更多