代码之家  ›  专栏  ›  技术社区  ›  Nicolas Wu

终端能否检测到<Shift-Enter>或<Control-Enter>?

  •  48
  • Nicolas Wu  · 技术社区  · 17 年前

    终端能否检测到 + 控制键 + 进入 按键?

    奇怪的是,尽管 控制键 + 进入 在vim映射中未检测到 进入 正确绘制地图,然后按下 控制键 + 进入 表现得像 进入 !

    2 回复  |  直到 9 年前
        1
  •  42
  •   Nicolas Wu    17 年前

    一些终端发送 <NL> <C-Enter> 被按下。这相当于发送 <C-J> .

    了解终端的功能 <Shift-Enter> <Ctrl-Enter> <Enter> <Ctrl-V>

    使用gnome终端,我得到以下结果:

      <Enter> : ^M
    <S-Enter> : ^M
    <C-Enter> : <NL>
    

    man ascii 表明 ^M 给予 <CR> 序列。

    答案是,这取决于终端,并且有一种简单的方法可以检查。

        2
  •  18
  •   sykora    17 年前

    Gvim运行自己的管理器进行击键处理,因此可以拾取所有各种组合键。Vim依赖于特定的终端来传递特定的按键,因此按键处理只与终端一样好或不同。

    一种确定是否可以做你想做的事情的方法是使用密钥找出插入的内容。例如类型:

    :<C-V><C-Enter>
    

    即在键入组合Control-V后,实际键入要按的组合。之后,对enter执行相同的操作,即

    :<C-V><Enter>
    

    如果它们产生相同的代码,那么终端会将这两个组合键解释为相同的键码,如果不干扰终端,就无法绑定它们。

    编辑:在Windows中使用C-Q而不是C-V。