我想知道是否有办法弄清楚某个键是否在vim中起作用。我知道我可以:map
用来查看用户定义的映射,但是内置的东西有东西吗?
例如,我一直必须CTRL-W一定要关闭标签,因为我认为它没有使用。半年后,我发现有一些使用它,就像序列CTRL- W CTRL-S分割窗口,它是重新训练自己的噩梦。
Answers:
如果您查看Randy Morris的建议答案,您会发现
:help index
将为您提供所需的列表。
要检查默认映射:
:help index
对于由用户或插件完成的其他映射:
:map
:map!
从http://vim.wikia.com/wiki/Mapping_keys_in_Vim_-教程(Part_1):
第一个命令显示以正常,可视,选择和操作员待定模式工作的地图。第二个命令显示在插入和命令行模式下工作的映射。
通常,以上命令的输出将跨越几页。您可以使用以下命令集将输出重定向到vim_maps.txt文件:
:redir! > vim_maps.txt :map :map! :redir END
这不是一个完整的答案,但是您可能需要查看:help map-which-keys
vim建议您在自定义映射中使用的键列表。
该帮助部分提供了有关如何判断特定键是否映射到操作的建议。
使用:map!
和:map
手动设置密钥,并:help 'char(-combination)'
找出现成的vim中已经映射了哪些密钥(/特定的编译选项除外)。(略微偏离主题,但仍相当可观(我认为)::scriptnames
用于查看哪些文件是以什么顺序来源的。)
我浏览:help index
了一下,并列出了一些未使用的nmap
键:
<Space>
(与l
普通模式下相同;普通模式下最大和使用最多的密钥)请更新/评论。
您可以使用mapcheck
。:-
例如,我想映射<CR> ,i
到gg=G
到缩进文件。检查是否已经有映射<CR> , i
if mapcheck("\<CR>", "I") == "" |echo "no mapping"
...但是这不会检测到映射是否是序列的一部分。