Linux vim命令

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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • vi/vim 基本使用方法vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编...
    lvanboy阅读 3,208评论 0 9
  • 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。 启动vim 在命令...
    im蚂蚁阅读 30,904评论 3 48
  • 1. 关于Vim vim是我最喜欢的编辑器,也是linux下第二强大的编辑器。 虽然emacs是公认的世界第一,我...
    Dyworldhua阅读 1,483评论 0 2
  • 当不知道该不该相信一个人的时候 先选择相信 或许他会比你选择相信的更让你相信 反正结果最差能预料 不会比最差的更差了
    Eloise_986c阅读 154评论 0 0
  • 思绪在 毫无声息的 咆哮 海风中 伴随着 月光的味道 深夜沙滩上的灯光 从来不睡觉 彻夜通宵 平静的海水 咀嚼着生...
    HkingH阅读 2,077评论 3 1