Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
让用户配置Vim插件的最佳方法_Vim - Fatal编程技术网

让用户配置Vim插件的最佳方法

让用户配置Vim插件的最佳方法,vim,Vim,我需要让用户配置插件设置(例如,文件类型列表,插件不会处理) 一个简单的选项是在.vimrc中设置一个全局变量,并在插件中检查它 是否存在更优雅/可接受的方式,或者它是唯一的选择 更新: 我正在写这个插件:。我不想强迫用户在ftplugin中创建大量文件,而不需要为这些类型的文件配置设置。关键是只在一个地方配置它。如果不知道确切的上下文,很难决定“最佳”。没错,一种方法是规范的g:PluginName\u ConfigVar变量。即使在那里,您也可以提供逗号分隔的列表('c,cpp,html,x

我需要让用户配置插件设置(例如,文件类型列表,插件不会处理)

一个简单的选项是在
.vimrc
中设置一个全局变量,并在插件中检查它

是否存在更优雅/可接受的方式,或者它是唯一的选择

更新: 我正在写这个插件:。我不想强迫用户在
ftplugin
中创建大量文件,而不需要为这些类型的文件配置设置。关键是只在一个地方配置它。

如果不知道确切的上下文,很难决定“最佳”。没错,一种方法是规范的
g:PluginName\u ConfigVar
变量。即使在那里,您也可以提供逗号分隔的列表(
'c,cpp,html,xhtml'
)、实列表(
['c','cpp','html','xhtml']
)或正则表达式(
'^(c\'cpp\'x\'html\')$)


另一种模块化方法是在设置了
b:NoPluginName
缓冲区局部变量时禁用插件,例如在
~/.vim/ftplugin/.vim
中。当只有少数文件类型例外时,这是有意义的。这样做的好处是,虽然文件类型是绑定的,但它更灵活。例如,如果只想关闭项目A中HTML文件的插件,可以定义一个
:autocmd
,或向ftplugin添加一个条件以检查文件的路径,然后根据该条件设置标志。如果使用单个全局变量,这种例外就不那么优雅了。

感谢您提供了更多背景信息。我有一个类似的插件,并决定提取到一个单独的插件启动部分。一般来说,我不建议这样做,但对于这个特定的功能,它是有意义的。如果用户想要更改默认设置,应该在
~/.vimrc
中或插件源代码之前的任何地方重新定义
g:indentconsistencycop\u文件类型。请参阅,此插件插件插件实现了适用于90%用户的基本情况。其余的人可以不使用附加组件,而是围绕主插件构建他们的特定基础设施。