代码之家  ›  专栏  ›  技术社区  ›  Forethinker morningstar

按下映射到:标记<CR>的键时,Vim命令窗口输出自动关闭

  •  1
  • Forethinker morningstar  · 技术社区  · 13 年前

    所以这就是我所拥有的

    nnoremap M :marks<CR>       " show marks
    

    如果我手动键入命令并按enter键,它会显示得很好。此外,其他没有“按Enter键或键入命令继续”的命令也可以正常工作。但当我按下时,它不起作用 M 在正常模式下。

    我认为这种行为可能与 shortmess+=A ,但事实并非如此。知道为什么会发生这种情况吗?

    2 回复  |  直到 13 年前
        1
  •  1
  •   Ingo Karkat    13 年前

    Vim对Ex命令的解释与大多数其他语言不同,这就是为什么这是一个常见的陷阱。与的支票 :nmap M 会向您显示注释包含在映射中。

    您可以在这里通过使用 | 命令连接器(这就是为什么必须使用 <Bar> 将其包括在映射中):

    :nnoremap M :marks<CR>|       " show marks
    

    你也可以使用 :execute (这类问题的典型解决方案),但这里最好的方法可能是将注释移到单独的前一行。

        2
  •  0
  •   Forethinker morningstar    13 年前

    罪魁祸首是尾部空格。在重新映射时,我应该小心不要添加空格和注释。

    nnoremap M :marks<CR>
    

    解决了问题。注意后面没有注释和空格 <CR>