有什么方法可以查看Vim中当前映射的键?


183

基本上,我想查看当前缓冲区中所有插件,vimrc等在当前缓冲区中创建的所有键映射。反正有这样做吗?

Answers:


238

您可以使用:map命令执行此操作。还有其他变体。

  • :nmap 用于普通模式映射
  • :vmap 用于可视模式映射
  • :imap 用于插入模式映射

上面的清单不完整。:help map在Vim中键入将为您提供更多信息。


10
我想只是为了澄清一下:map,正如原始问题所要求的那样,它仅显示了插件,vimrc等所做的映射。如果您想查看vim中的默认键绑定,请使用:index
Von

28
@冯,你可能是说:help index
Lqueryvg 2014年

2
这些仅提供您用户定义的映射,而不提供内置(默认)绑定
Tyler Durden 2014年

1
是否可以将它们写入文件以供以后查看?
安东·达涅科

@AntonDaneyko您可以为此使用github.com/AndrewRadev/bufferize.vim
radlan

84
:redir! > vim_keys.txt
:silent verbose map
:redir END

这会将快捷方式及其定义位置输出到文本文件。


1
我相信您是要使用:redir命令,而不是:remap命令。
亚伦·海斯

1
谢谢你,谢谢你,谢谢你!!!最终发现MacVim正在重新映射我的<A-Up>命令。通过添加让macvim_skip_cmd_opt_movement = 1
RichS

54

除了:map没有参数的答案以外:不要错过其冗长的形式(:verbose map),该形式显示了在何处定义了映射(请参阅参考资料:help map-verbose)。



13

:map和它的朋友是关键,:verbose添加信息并:redir允许搜索后优化。

它们是完美的组合,可以显示将什么命令绑定到了什么快捷键,反之亦然,但是,如果要搜索某些键并在需要搜索映射时避免使用临时文件,请查看scriptease:Verbosecommand。

它是一个包装,:verbose用于在预览窗口中显示结果。

这样,您可以搜索任何想要的结果,而无需使用临时文件

像往常一样键入:Verbose map和使用/ ?


4

另一种方法是将会话保存到文件,然后编辑该文件,因为它包含所有映射和设置。

:mks[ession] [file] -编写恢复当前编辑会话的Vim脚本。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.