【问题标题】:How to explain ":%g/<h[12]>/ t$" in vim?如何在 vim 中解释 ":%g/<h[12]>/t$"?
【发布时间】:2018-12-08 07:55:42
【问题描述】:

我找到了这个

:%g/<h[12]>/ t$

http://www.vimregex.com/

它说

这个命令在我们的文件中搜索以&lt;h1&gt;或开头的行 &lt;h2&gt; 并将它们复制到文件末尾。

但是我看不懂/ t$这部分是什么意思?

【问题讨论】:

    标签: regex shell vim


    【解决方案1】:

    如果您在vim 中运行此help 命令:

    :help copy
    

    它将显示以下可以解释一切的帮助:

    :[range]co[py] {address}                *:co* *:copy*
                Copy the lines given by [range] to below the line
                given by {address}.
    
                                *:t*
    :t          Synonym for copy.
    

    详细信息:

    • :g:全球搜索
    • &lt;h[12]&gt;:搜索&lt;h1&gt;&lt;h2&gt;
    • t$copy$:将[range] 给出的行复制到{address} 给出的行下方。

    你可以让它更冗长。但使用此等效命令更具可读性:

    :%g/<h[12]>/ copy$
    

    或者这个:

    :%g/<h[12]>/ co$
    

    要在文件开始处复制匹配的行,请使用:

    :%g/<h[12]>/ copy0
    

    【讨论】:

      【解决方案2】:

      % 是运行命令的行范围 -- % 是整个文件。

      g 命令是“全局的”——搜索匹配正则表达式的行并将另一个命令应用于匹配的行

      /&lt;h[12]&gt;/ 是要匹配的正则表达式。

      t 命令是“复制”——将选定的行复制到某处。 $ 已结束,因此将这些行复制到文件末尾。

      【讨论】:

        猜你喜欢
        • 2021-04-24
        • 2013-03-31
        • 1970-01-01
        • 2019-12-19
        • 2011-09-24
        • 1970-01-01
        • 2015-11-13
        • 2015-05-03
        • 2023-04-11
        相关资源
        最近更新 更多