如何检测哪些快捷方式映射到Vim中的特定命令?

时间:2012-12-26 17:06:18

标签: python vim plugins

简而言之,我想在Vim插件中提供一个帮助窗口,可以检测用户在.vimrc中映射到插件命令的快捷方式。

有没有办法查看用户可能或可能没有映射到插件命令的快捷方式?

(注意,我正在寻找一种方法来查看特定快捷方式将执行的命令,这很容易找到FAQ。)

例如,在用户的.vimrc中,他们可以添加一行,例如:

map <leader>1 :MyCoolPluginCommand<cr>

在我的插件界面中,我想展示一个快速帮助窗口,显示一个cheetsheet,如

"Cool Command 1: <leader>1"

我唯一的想法是尝试解析他们的vimrc并使用一组复杂的正则表达式来获取字符串值。有更好的方法吗?谢谢!

[edit] 这个插件调用了一个python脚本,所以我也用python标记了这个问题,以便解决方案成为可能。 (使用import vim所以我可以eval()东西。

1 个答案:

答案 0 :(得分:3)

:map为您提供所有映射的列表;它应该比.vimrc更容易解析。

此外,它还会显示来自其他地方的映射(例如系统范围或命令行)。