vim的文本替换

 1.   替换当前行中的内容:      : s/from/to/    (s即substitude)
            :s/from/to/       :   将当前行中的第一个from,替换成to。如果当前行含有多个
                                          from,则只会替换其中的第一个。
            :s/from/to/g      :   将当前行中的所有from都替换成to。
            :s/from/to/gc    :   将当前行中的所有from都替换成to,但是每一次替换之前都
                                          会询问请求用户确认此操作。

            注意:这里的from和to都可以是任何字符串,其中from还可以是正则表达式。

      2.   替换某一行的内容:         :33s/from/to/g
            :.s/from/to/g    :   在当前行进行替换操作。
            :33s/from/to/g   :   在第33行进行替换操作。
            :$s/from/to/g    :   在最后一行进行替换操作。

      3.   替换某 行的内容:         : 10,20s/from/to/g
            :10,20s/from/to/g    :   对第10行到第20行的内容进行替换。
            :1,$s/from/to/g       :   对第一行到最后一行的内容进行替换(即全部文本)。
            :1,.s/from/to/g       :   对第一行到当前行的内容进行替换。
            :.,$s/from/to/g       :   对当前行到最后一行的内容进行替换。
            :'a,'bs/from/to/g    :   对标记a和b之间的行(含a和b所在的行)进行替换。
                                                其中a和b是之前用m命令所做的标记。

      4.   替换 所有行的内容:         :% s/from/to/g
            :%s/from/to/g    :   对所有行的内容进行替换。

      5.   替换命令的完整形式:      : [range]s/from/to/[flags]
            5.1 s/from/to/
                  把from指定的字符串替换成to指定的字符串,from可以是正则表达式。
            5.2 [range]
                  有以下一些表示方法:
                  不写range    :   默认为光标所在的行。
                  .                :   光标所在的行。
                  1                :   第一行。
                  $                :   最后一行。
                  33               :   第33行。
                  'a               :   标记a所在的行(之前要使用ma做过标记)。
                  .+1             :   当前光标所在行的下面一行。
                  $-1             :   倒数第二行。(这里说明我们可以对某一行加减某个数值来
                                          取得相对的行)。
                  22,33          :   第22~33行。
                  1,$             :   第1行 到 最后一行。
                  1,.             :   第1行 到 当前行。
                  .,$             :   当前行 到 最后一行。
                  'a,'b          :   标记a所在的行 到 标记b所在的行。

                  %                :   所有行(与 1,$ 等价)。

                   ?chapter?    :   从当前位置 向上搜索,找到的第一个chapter所在的行。(
                                          其中chapter可以是任何字符串或者正则表达式。
                  /chapter/    :   从当前位置向 搜索,找到的第一个chapter所在的行。(
                                          其中chapter可以是任何字符串或者正则表达式。

                  注意,上面的所有用于range的表示方法都可以通过 +、- 操作来设置相对偏
                  移量。

            5.3 [flags]
                  这里可用的flags有:

                  无         :   只对指定范围内的第一个匹配项进行替换。
                  g          :   对指定范围内的所有匹配项进行替换。
                  c          :   在替换前请求用户确认。
                  e          :   忽略执行过程中的错误。


你可能感兴趣的:(linux)