VIM: 如何列出指定插件当前缓冲区中的所有按键映射
VIM: How to list all key mappings in the current buffer for a specified plugin
我知道如何使用 nmap
、imap
等查看 vim 中的所有键映射,以及如何列出哪个操作绑定到给定的键绑定。但有时我想快速查看给定插件的所有键绑定,有没有快速的方法可以做到这一点?我不想列出所有键绑定并逐页搜索它们。
非常感谢。
这是一个在单独的 window:
中获取特定插件映射的命令
: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'
我知道如何使用 nmap
、imap
等查看 vim 中的所有键映射,以及如何列出哪个操作绑定到给定的键绑定。但有时我想快速查看给定插件的所有键绑定,有没有快速的方法可以做到这一点?我不想列出所有键绑定并逐页搜索它们。
非常感谢。
这是一个在单独的 window:
中获取特定插件映射的命令: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'