检测一个键是否绑定到vim中的某个东西
我想知道是否有一种方法来确定一个密钥是否在vim中执行某些操作。 我知道我可以使用:map
来查看用户定义的映射,但有内置的东西的东西吗?
例如,我总是将CTRL – Wclosures,因为我认为它没有被使用。 半年后,我发现有一些序列使用它,像CTRL – W CTRL – S分裂窗口,这是一个噩梦再培训自己。
如果你看看兰迪·莫里斯的build议答案,你会发现
:help index
会给你你想要的清单。
不是一个完整的答案,但是你可能想看看:help map-which-keys
列出vimbuild议你在你的自定义地图中使用的键。
该帮助部分提供了如何判断特定键是否映射到动作的build议。
要检查默认映射:
:help index
对于由用户或插件完成的其他映射:
:map :map!
来自http://vim.wikia.com/wiki/Mapping_keys_in_Vim_- 教程 (Part_1) :
第一个命令显示在正常,可视和select和操作员挂起模式下工作的地图。 第二个命令显示在插入和命令行模式下工作的地图。
通常,上述命令的输出将跨越多页。 您可以使用以下一组命令将输出redirect到vim_maps.txt文件:
:redir! > vim_maps.txt :map :map! :redir END
使用“:地图!” 和“:map”用于手动设置键和“:help”char(-combination)'“,以找出哪些键已经被映射到vim开箱即用(/不在您的特定编译选项中)。 (稍微偏离主题,但仍然值得关注(我认为):使用“:scriptnames”来查看哪些文件已经按照哪个顺序来源。
最好的问候
我浏览:help index
并列出了一些未使用的nmap
键:
- Q(切换到“Ex”模式)
- Z除ZZ,ZQ
- \
- gb,gc,gl,gx,gy,gz
- zp,zq,zu,zy
- cd,cm,co,cp,cq,cr,cs,cu,cx,cy
- dc,dm,do,dp,dq,dr,ds,du,dx,dy
- 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
- ]]]>]]>]]>]]>]]>]]>]]]>]]]]> ,] y
- [,[,,] [,[,[,[,[,[,[,, ,[y
- CTRL-G,CTRL-K
- CTRL- \ a – z(保留为扩展名)
- CTRL- \ A – Z(未使用)
请更新/评论。
你可以使用mapcheck
–
例如,我想映射<CR> ,i
到gg=G
缩进文件。 为了检查是否已经有一个映射<CR> , i
if mapcheck("\<CR>", "I") == "" |echo "no mapping"
…但是这不会检测映射是否是序列的一部分。