zoukankan      html  css  js  c++  java
  • 关于在vim中的查找和替换

    1,查找

    在normal模式下按下/即可进入查找模式,输入要查找的字符串并按下回车。 Vim会跳转到第一个匹配。按下n查找下一个,按下N查找上一个。

    Vim查找支持正则表达式,例如/vim$匹配行尾的"vim"。 需要查找特殊字符需要转义,例如/vim$匹配"vim$"

    2,大小写敏感查找

    在查找模式中加入c表示大小写不敏感查找,C表示大小写敏感查找。例如:

    /fooc
    

    将会查找所有的"foo","FOO","Foo"等字符串。

    3,大小写敏感配置

    Vim 默认采用大小写敏感的查找,为了方便我们常常将其配置为大小写不敏感:

    " 设置默认进行大小写不敏感查找
    set ignorecase
    " 如果有一个大写字母,则切换到大小写敏感查找
    set smartcase 
    

    将上述设置粘贴到你的~/.vimrc,重新打开Vim即可生效

    4,查找当前单词

    在normal模式下按下*即可查找光标所在单词(word), 要求每次出现的前后为空白字符或标点符号。例如当前为foo, 可以匹配foo bar中的foo,但不可匹配foobar中的foo。 这在查找函数名、变量名时非常有用。

    按下g*即可查找光标所在单词的字符序列,每次出现前后字符无要求。 即foo barfoobar中的foo均可被匹配到。

    5,查找与替换

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

    :{作用范围}s/{目标}/{替换}/{替换标志}
    

    例如:%s/foo/bar/g会在全局范围(%)查找foo并替换为bar,所有出现都会被替换(g

    6,作用范围

    作用范围分为当前行、全文、选区等等。

    当前行:

    :s/foo/bar/g
    

    全文:

    :%s/foo/bar/g
    

    选区,在Visual模式下选择区域后输入:,Vim即可自动补全为 :'<,'>

    :'<,'>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/fooc/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中如何快速进行光标移

    大小写敏感查找

    在查找模式中加入c表示大小写不敏感查找,C表示大小写敏感查找。例如:

    /fooc
    

    将会查找所有的"foo","FOO","Foo"等字符串。

     

  • 相关阅读:
    LeetCode Find Duplicate File in System
    LeetCode 681. Next Closest Time
    LeetCode 678. Valid Parenthesis String
    LeetCode 616. Add Bold Tag in String
    LeetCode 639. Decode Ways II
    LeetCode 536. Construct Binary Tree from String
    LeetCode 539. Minimum Time Difference
    LeetCode 635. Design Log Storage System
    LeetCode Split Concatenated Strings
    LeetCode 696. Count Binary Substrings
  • 原文地址:https://www.cnblogs.com/huxinga/p/7942194.html
Copyright © 2011-2022 走看看