我想知道是否有办法弄清楚一个键是否在vim中做了什么.我知道我可以:map用来查看用户定义的映射,但内置的东西有什么用吗?
例如,我总是CTRL- W必须关闭标签,因为我认为它没有被使用.半年后,我发现有一些使用它,就像序列CTRL- W CTRL- S分割窗口,它是重新训练自己的噩梦.
ske*_*ept 73
如果您查看Randy Morris建议的答案,您会发现
:help index
Run Code Online (Sandbox Code Playgroud)
会给你你想要的清单.
Hie*_*ieu 39
要检查默认映射:
:help index
Run Code Online (Sandbox Code Playgroud)
对于由用户或插件完成的其他映射:
:map
:map!
Run Code Online (Sandbox Code Playgroud)
来自http://vim.wikia.com/wiki/Mapping_keys_in_Vim_- 教程(第1部分):
第一个命令显示在正常,可视和选择以及操作员暂挂模式下工作的映射.第二个命令显示在插入和命令行模式下工作的映射.
通常,上述命令的输出将跨越几页.您可以使用以下命令集将输出重定向到vim_maps.txt文件:
Run Code Online (Sandbox Code Playgroud):redir! > vim_maps.txt :map :map! :redir END
小智 17
使用":map!" 和":map"用于手动设置键和":help'char(-combination)'"以找出哪些键已经在vim中开箱即用(/在特定的编译选项之外).(稍微偏离主题但仍然可以考虑(我认为):使用":scriptnames"查看哪些文件来自哪个顺序.)
最好的问候,S.
Mic*_*zia 14
我浏览:help index了一下并列出了一些未使用的nmap密钥:
<Space>(与l正常模式相同;正常模式下最大和未充分利用的密钥)请更新/评论.
Moh*_*mel 11
你可以使用mapcheck.: -
例如,我想映射<CR> ,i到gg=G到缩进文件.检查是否已有映射<CR> , i
if mapcheck("\<CR>", "I") == "" |echo "no mapping"
Run Code Online (Sandbox Code Playgroud)
...但是这不会检测映射是否是序列的一部分.