如何列出插件的可用选项?


10

我最近发现YouCompleteMe有一个 g:ycm_autoclose_preview_window_after_insertion选项可以在退出插入模式后自动隐藏文档预览窗口,而且我最近也开始使用vim,因此这是我第一次设置选项。

所以我想知道我在vim环境中编写的其他插件是否有可用的选项,而无需手动搜索。

它们是在vim启动时在全局注册的,以使列出它们的命令可用,还是无法完成?


你不能 插件变量需要记录。没有办法知道,不阅读代码就使用什么变量。
克里斯蒂安·布拉班德

Answers:


6

Vim没有提供任何方法来了解所有可能的插件选项。

作为插件作者,我可以告诉您这很复杂,因为有许多不同的处理方式。例如,如果我们认为如果最终用户未在其中提供选项的值,.vimrc那么我们将强制该选项存在并等于默认值,或者我们可以说:“或者采用由最终用户,或使用硬编码默认值”。

使用第一种方法,最终用户可以使用c_CTRL-D,或c_TAB等查看可用选项的列表。

越来越多的插件选择将其所有选项组织成字典。即,而不是有g:plugin_foo_optiong:plugin_bar_option,我们有g:plugin.foo_optiong:plugin.bar_option。这样可以避免污染g:全局选项列表,但是会丢失命令行自动补全功能(我最终可能会在vim github上发表有关该主题的问题)。

到目前为止,我只谈论了全局选项。大多数插件即使已完成尝试也不会尝试支持更多特定选项。例如,我很遗憾,YouCompleteMealternate和其他许多插件都没有使用项目特定的选项,而没有使用全局选项。确实,根据我正在从事的项目,我想将它们各自的选项设置为不同的值。不幸的是,这不是他们考虑的工作流程。在我的插件中,许多选项可以基于项目或基于缓冲区进行专门设置​​。最近,我提出了关于该主题的实验。但是,即使使用通常的简单g:plugin_option+ b:plugin_option对,也几乎不可能知道所有可用的选项。

有时候,我尝试提供一些命令来帮助设置选项,就像使用build-tools-wrappers一样,或者甚至在菜单中显示某些选项(使用gvim时),但这远非完美。

恐怕文档是最好的东西。您甚至可以尝试:h pluginname^D。这可能是最好的方法。


有关幕后各种选项的详细说明。而且:h pluginname实际上很棒!因此,我不必多次离开vim来阅读不同插件的文档。
Iulian Onofrei

2

Vim没有可用选项的引用。最好的办法就是查看已初始化的内容。

对于Vim的内置选项,有命令:set。来自:h :set

:se[t] Show all options that differ from their default value.

您不会看到所有可用的选项,只会看到您修改的选项。

您还可以:let用于列出所有已声明变量的值以及:let g:用于全局变量的列表。(请参阅:h E121以获取可以显示的变量列表)。

请注意,这些列表并不总是易于阅读/解析。对于插件,最好的选择是阅读文档并找到所需的选项。

您可能也对此Wikia技巧感兴趣,如何显示vim环境


接受了另一个答案,因为它较为冗长,尽管它具有与我的问题相关的有趣命令,可能会有所帮助。
Iulian Onofrei
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.