我想知道是否有办法弄清楚密钥是否在vim中有用。我知道我可以使用:map
来查看用户定义的映射,但内置的内容是否存在?
例如,我总是将 CTRL - W 绑定到关闭选项卡,因为我认为它未被使用。半年后,我发现有一些序列使用它,如 CTRL - W CTRL - S 拆开窗户,重新训练自己是一场噩梦。
答案 0 :(得分:71)
如果您查看Randy Morris建议的答案,您会发现
:help index
会为您提供所需的列表。
答案 1 :(得分:35)
检查默认映射:
: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
答案 2 :(得分:30)
不是一个完整的答案,但您可能需要查看:help map-which-keys
以获取vim建议您在自定义地图中使用的键列表。
该帮助部分建议如何判断特定键是否映射到某个操作。
答案 3 :(得分:16)
使用“:map!”和“:map”用于手动设置键和“:help'char(-combination)'”以找出哪些键已经在vim中开箱即用(/在特定的编译选项之外)。 (稍微偏离主题但仍然可以考虑(我认为):使用“:scriptnames”查看哪些文件来自哪个顺序。)
祝你好运, S上。
答案 4 :(得分:13)
我浏览了:help index
并列出了一些未使用的nmap
键:
<Space>
(与正常模式下的l
相同;正常模式下最大且未充分利用的密钥)请更新/评论。
答案 5 :(得分:9)
您可以使用mapcheck
。: -
例如,我想将<CR> ,i
映射到gg=G
以缩进文件。
检查是否已存在<CR> , i
if mapcheck("\<CR>", "I") == "" |echo "no mapping"
...但是这不会检测映射是否是序列的一部分。