美文网首页Vim推荐系统Linux
Vim备忘录:搜索和替换

Vim备忘录:搜索和替换

作者: fromradio | 来源:发表于2016-08-11 09:34 被阅读377次

    vim提供了命令:s(是单词替换substitue的简写)来进行文本搜索以及替换,下面列举了一些例子如何使用vim中的搜索和替换模块。

    :s命令搜索一个文本正则,并使用一个文本替换它。命令中有许多选项可以选择,这里介绍几个常用的组合。

    :%s/foo/bar/g
    

    找到当前文档所有出现的foo,并将其替换成为bar

    :s/foo/bar/g
    

    找到当前行中出现的所有foo,并替换为bar

    :%s/foo/bar/gc
    

    将所有foo替换为bar,但是需要用户确认。

    :%s/\<foo\>/bar/gc
    

    将所有单个为foo的单词替换为bar,并且需要用户确认。

    :%s/foo/bar/gci
    

    讲所有的foo替换为bar,但是正则式中可以有满足i标志的不敏感项(insensitive)

    总体而言,g标志表示全局,即对所有出现的情况都做处理。c标志需要用户去确认是否替换,vim中的输出类似于:

    replace with foobar (y/n/a/q/l/^E/^Y)?
    

    更多情况

    选定替换区域

    :5,12s/foo/bar/g 将5到11行的foo替换为bar

    :'a,'bs/foo/bar/g 把vim中标记为ab之间的foo替换为bar

    :'<,'>s/foo/bar/g 如果vim中有visual工作(v键可以工作),将选定区域内的foo替换为bar

    :,$s/foo/bar/g 将当前行到最后行之间的foo替换为bar

    :,+2s/foo/bar/g将当前行和随后两行中的foo替换为bar

    :g/^baz/s/foo/bar/g 将以baz为行首的foo替换为bar

    匹配的时候

    .,*,\,[,^$是元字符,需要通过反斜杠转义

    +,?,|,&,{,(,)也需要注意避免

    \t是制表符,\s是空白符
    \n是换行,\r是CR(carriage return=Ctrl-M=^M)

    替换的时候

    \r是换行,\n是空字符

    \&是字符&,而&是满足搜索模式的文本

    \O将插入匹配所有模式的文本

    \1插入第一个回溯引用,并以此类推

    相关文章

      网友评论

      本文标题:Vim备忘录:搜索和替换

      本文链接:https://www.haomeiwen.com/subject/fynjsttx.html