我需要让用户配置插件设置(例如,插件不会处理的文件类型列表)。
简单的一个选项是在.vimrc
中设置一个全局变量并在插件中进行检查。
是否存在更优雅/可接受的方式,或者它是唯一的选择?
更新
我正在写这个插件:https://github.com/aserebryakov/filestyle。我不想强迫用户在ftplugin
中创建大量文件,而无需为这些类型的文件配置设置。关键是只在一个地方配置它。
答案 0 :(得分:3)
很难决定"最好"不知道确切的背景。你是对的,一种方式是规范的g:PluginName_ConfigVar
变量。即使在那里,您也可以选择提供以逗号分隔的列表('c,cpp,html,xhtml'
),真实列表(['c', 'cpp', 'html', 'xhtml']
)或正则表达式('^\(c\|cpp\|x\?html\)$'
)。
另一种模块化方法是在设置b:NoPluginName
缓冲区局部变量时禁用插件,例如在~/.vim/ftplugin/<filetype>.vim
。当只有少数文件类型被排除时,这是有意义的。关于这一点的好处是虽然文件类型绑定,但它更灵活。例如,如果您只想为项目A中的HTML文件关闭插件,则可以定义:autocmd
或向ftplugin添加条件以检查文件的路径,然后设置标志基于此。使用单个全局变量,这种异常将不那么优雅。