查找替换之Vim中使用技巧

查找替换在Vim中的用法

   使用方法:

      在末行模式下输入:

           地址定界s/模式/替换成的内容/后加一些修饰符

                注:替换为的内容不能使用模式

                        修饰符:

g

global  全局替换

i      ignorecase 在查找时不区分大小写


例1:首先打开man.conf文件添加what doonhello what将中的what全部替换成down

       .s/what/down/g

例2、在例1的基础上将文中所有以d开头中间跟任意两个字符以n结尾的单词全部替换成come

      %s/\<d[[:alpha:]]\{2\}n\>/come/g

例3、将文中所有/bin/cat全部替换成/tmp/a.txt

        %s/\bin\/cat/\/tmp\/a.txt/g

注:首先将文中的/进行转义,而由于.在替换成的内容中不用实行转义


经过例3之后是不是感觉看上去很不爽啊,而事实上查找替换中的分隔符是可以换成其他符号(不常用的其他符号)的,比如:@,&,#

        如%s@/tmp/a.txt@/bin/cat@g

例4、在例1的基础上将文中所有以d开头中间跟任意两个字符以n结尾的单词全部替换成D中间不变N(格式:down  ―> DowN

       %s@\<d\([[:alpha:]]\{2\}\)n\>@D\1N@g

例5、查找替换文中不论大小写的字符换成字符ice

   格式如下:dev ―>device    DEV --> DEVice   Dev -->Device

        %s@\([dD][eE][vV]\)@\1ice@g

注:只要我们查找替换的是保留前面的所有内容的可以不用使用分组使用&符号即可

那么这题就可以写成:%s@\[dD][eE][vV]\@&ice@g


拓展演练:(没有附加效果图,答案无误)

1、删除/etc/inittab文件中开头的#号;

        %s@^#@@


2、删除/etc/grub.conf文件中行首的空白符;

        %s@^[[:space:]]\{1,\}@@


3、替换/etc/inittab文件中"id:3:initdefault:"一行中的数字为5

       %s@id:3:@id:5:@g


4、删除某文件中开头的#号及后面的空白字符,但要求#号后面必须有空白字符;

       %s@^#[[:space:]]\{1,\}@@


5、为指定范围内的行的行首添加#

      1,10s@^@#@g


6、为空白字符开头的行的行首加上#

      %s@^[[:space:]]@#&@




你可能感兴趣的:(替换,查找,vim)