【问题标题】:What is the meaning of a <CR> at the end of some vim mappings?一些 vim 映射末尾的 <CR> 是什么意思?
【发布时间】:2014-04-04 06:20:58
【问题描述】:

我在 vim 映射中经常看到 &lt;cr&gt;s,但它有什么作用?

【问题讨论】:

标签: vim mapping


【解决方案1】:
:help key-notation

说:

notation    meaning            equivalent  decimal    value(s)
-----------------------------------------------------------------------
<CR>        carriage return        CTRL-M    13       *carriage-return*
<Return>    same as <CR>                              *<Return>*
<Enter>     same as <CR>                              *<Enter>*

映射通常涉及 Ex 命令,您必须按 &lt;CR&gt; 来执行它们,以便将其包含在映射中。

【讨论】:

  • 赞成展示如何获取信息!这是一次学习两件事的方法:-)
【解决方案2】:

为什么是&lt;special keys&gt;

虽然您可以在映射定义中使用文字键(Enter 键将显示为 ^M,或者甚至只是作为附加的新行,具体取决于设置),但 Vim 为键(组合)提供了特殊的键表示法,以便更容易定义(您不必使用 i_CTRL-V 来逐字插入特殊字符)和理解(&lt;A-a&gt; 比等效的 á 更能表达意图)映射。

有关列表和说明,请参阅:help key-notation

为什么是&lt;CR&gt;

由于许多映射调用 Ex 命令(例如 :w),因此必须从 普通 模式切换到 命令行 模式,它们必须以 @ 结束命令987654329@(或&lt;CR&gt;),就像手动输入命令一样。

【讨论】:

    【解决方案3】:

    vim 映射中的&lt;CR&gt;carriage return,通常是键盘上的Enter

    【讨论】:

      【解决方案4】:
      映射中的

      &lt;CR&gt; 对应于 Enter 键,就像映射中的 a 对应于 A 键一样。 Ley 说你有这个映射

      :map <f8> :wq<cr>
      

      这会将 F8 映射到键序列 WQEnter (这将保存当前缓冲区并退出)。

      【讨论】:

        【解决方案5】:

        基本上是说“这就是结束”的一种手段,见map

        当你有一个包含Ex 命令的映射时,你需要放一行 在它之后执行终止符。建议使用 这。示例:

        :map _ls :!ls -l %&lt;CR&gt;:echo "the end"&lt;CR&gt;

        还有,

        <CR>    [count] lines downward, on the first non-blank character |linewise|.
        

        【讨论】:

          猜你喜欢
          • 2012-05-07
          • 2012-10-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-03-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多