代码之家  ›  专栏  ›  技术社区  ›  K. Norbert

检测密钥是否绑定到vim中的某个对象

  •  77
  • K. Norbert  · 技术社区  · 14 年前

    我想知道是否有办法知道一把钥匙在vim中是否起作用。我知道我可以用 :map 查看用户定义的映射,但是有没有内置的东西?

    例如,我总是 CTRL - W 必须关闭标签页,因为我认为它未使用。半年后,我发现有一些序列使用它,比如 CTRL - W CTRL - S 打破窗户,重新训练自己简直是噩梦。

    6 回复  |  直到 5 年前
        1
  •  70
  •   skeept    14 年前

    如果你看看兰迪·莫里斯建议的答案,你会发现

    :help index 
    

    会给你你想要的名单。

        2
  •  35
  •   Hieu    11 年前

    要检查默认映射:

    :help index
    

    对于由用户或插件完成的其他映射:

    :map
    :map!
    

    http://vim.wikia.com/wiki/Mapping_keys_in_Vim_- Tutorial (Part_1) :

    第一个命令显示正常、可视和 选择和操作员挂起模式。第二个命令显示地图 在插入和命令行模式下工作。

    通常,上述命令的输出将跨越多个页面。 可以使用以下命令集将输出重定向到 vim_maps.txt文件:

    :redir! > vim_maps.txt
    :map
    :map!
    :redir END
    
        3
  •  30
  •   Randy Morris    14 年前

    不是一个完整的答案,但是你可能想退房 :help map-which-keys vim建议您在自定义映射中使用的键列表。

    帮助部分提供了一个如何判断特定键是否映射到操作的建议。

        4
  •  16
  •   shindojin    13 年前

    使用“:地图!”和“:map”用于手动设置键和“:help'char(-combination)”,以查明哪些键已经在vim中进行了现成的映射(/out of your specific compiling options)。 (稍微偏离主题,但仍然可以重新获得(我认为):使用“:scriptnames”查看哪些文件是按哪个顺序获得的。)

    谨致问候, S.

        5
  •  13
  •   Michal Čizmazia    5 年前

    我浏览了一下 :help index 列出了一些未使用的 nmap 钥匙:

    • Q(切换到“EX”模式)
    • Z除了ZZ,ZQ
    • \
    • <Space> (同) l 在正常模式下;在正常模式下最大和最未充分利用的键)
    • GB、GC、GL、GX、GY、GZ
    • 睡眠(睡眠)
    • ZP、ZQ、ZU、ZY
    • Cd、Cm、Co、Cp、Cq、Cr、Cs、铜、Cx、Cy
    • 直流、直流、直流、直流、直流、直流、直流、直流、直流、直流、直流、直流
    • GA、GB、GC、GG、GK、GL、GM、GO、GS、GX、GY、GZ
    • ZB,ZI,ZJ,ZK,ZP,ZQ,ZP,ZS,ZT,ZU,ZV,ZY,ZZ
    • ]A,]B,]E,]G,]H,]J,]K,]L,]N,]O,]Q,]R,]T,]U,]V,]W,]X,]Y
    • [A,[B,[E,[G,[H,[J,[K,[L,[N,[O,[Q,[R,[T,[U,[V,[W,[X,[Y
    • CTRL-G,CTRL-K键
    • ctrl-\a-z(为扩展名保留)
    • ctrl-\a-z(未使用)

    请更新/评论。

        6
  •  8
  •   benomatis    8 年前

    你可以使用 mapcheck

    例如,我想绘制地图 <CR> ,i gg=G 缩进文件。 检查是否已存在 <CR> , i

    if mapcheck("\<CR>", "I") == "" |echo "no mapping"
    

    …但这无法检测映射是否是序列的一部分。