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

你可能感兴趣的:(Linux vim命令)