美文网首页
Linux vim命令

Linux vim命令

作者: 竹本無心 | 来源:发表于2018-10-28 17:42 被阅读0次

    vim 命令

    在 Vim 中优雅地查找和替换

    :s(substitute)命令用来查找和替换字符串。语法如下

    :{作用范围}s/{目标}/{替换}/{替换标志}
    例如:%s/foo/bar/g会在全局范围(%)查找foo并替换为bar,所有出现都会被替换(g)
    
    作用范围
        作用范围分为当前行、全文、选区等等。
        当前行:
            :s/foo/bar/g
        全文:
            :%s/foo/bar/g
        2-11行:
            :5,12s/foo/bar/g
        当前行.与接下来两行+2:
            :.,+2s/foo/bar/g
        
    替换标志
        上文中命令结尾的g即是替换标志之一,表示全局global替换(即替换目标的所有出现)。 还有很多其他有用的替换标志:
        
        空替换标志表示只替换从光标位置开始,目标的第一次出现:
            :%s/foo/bar
            
        i表示大小写不敏感查找,I表示大小写敏感:
            :%s/foo/bar/i
            # 等效于模式中的\c(不敏感)或\C(敏感)
            :%s/foo\c/bar
            
        c表示需要确认,例如全局查找"foo"替换为"bar"并且需要确认:
            :%s/foo/bar/gc
        回车后Vim会将光标移动到每一次"foo"出现的位置,并提示
            replace with bar (y/n/a/q/l/^E/^Y)?
        按下y表示替换,n表示不替换,a表示替换所有,q表示退出查找模式, l表示替换当前位置并退出。
    
    

    ^E与^Y是光标移动快捷键,参考Vim中如何快速进行光标移动。

    :s/vivian/sky/      替换当前行第一个 vivian 为 sky
    :s/vivian/sky/g     替换当前行所有 vivian 为 sky
    :n,$s/vivian/sky/   替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
    :n,$s/vivian/sky/g  替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
    n 为数字,若 n 为 .表示从当前行开始到最后一行
    
    :s/String//gn       查找当前行String出现的次数
    :%s/String//gn      查找所有String出现的次数
    
    image

    相关文章

      网友评论

          本文标题:Linux vim命令

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