我知道如何使用nmap
,imap
等查看所有键映射在vim,如何列出哪些行为被绑定到一个给定的密钥捆绑。但是有时我想快速查看一个给定插件的所有键绑定,有没有快速的方法来做到这一点?我不想列出所有的键绑定并逐页搜索。VIM:如何列出当前缓冲区中的所有键映射为一个指定的插件
非常感谢提前。
我知道如何使用nmap
,imap
等查看所有键映射在vim,如何列出哪些行为被绑定到一个给定的密钥捆绑。但是有时我想快速查看一个给定插件的所有键绑定,有没有快速的方法来做到这一点?我不想列出所有的键绑定并逐页搜索。VIM:如何列出当前缓冲区中的所有键映射为一个指定的插件
非常感谢提前。
这里是一个获得一个特定的插件的映射在一个单独的窗口中的命令:
:let pluginName=".vimrc" | let cmdMap="map"
:redir => output | silent execute "verbose ".cmdMap | redir END | new | put=output | execute 'v/^.*\n.*'.escape(pluginName,'./').'/d'
在第一行中,改变可变pluginName
与任何脚本名和cmdMap
与任何地图命令。 (输入)
在第二行中,执行将解析输出该命令。(结果)
您仍然可以映射这些命令或创建一个函数来得到用户的输入。
编辑:
为了扩大使用其他映射命令(如map!
),这将是更可靠的使用寄存器名称:
:redir @z | silent execute "verbose ".cmdMap | redir END | new | put z | execute 'v/^.*\n.*'.escape(pluginName,'./').'/d'
您需要检查'map!'以及'map'不会返回插入模式映射和命令模式映射。 –
使用新的vim,你可以使用'execute()'和':filter'来代替':redir'。例如'命令! -nargs = + map让map = call({pat,mode - > execute('filter'.pat。'verbose'。(mode =〜'^。$'?mode.'map':mode))},[
':帮助pluginname' – romainl
但默认配置可以根据文件类型,自定义等进行更改。 – shizhz