<p>将插件设置放入包根目录下名为<code>Preferences.sublime-settings</code>的文件中。这些设置将由Sublime文本自动加载并合并到Sublime的默认设置中。然后,您可以通过sublimeapi访问所有插件设置,而不需要任何样板代码。在</p>
<p>考虑以下名为<code>Preferences.sublime-settings</code>的插件设置文件:</p>
<pre><code>{
"plugin_name_setting1": true,
"plugin_name_setting2": true
}
</code></pre>
<p>这些设置可通过视图对象获得:</p>
^{pr2}$
<p>例如,从TextCommand内部:</p>
<pre><code>class ATextCommand(sublime_plugin.TextCommand):
def run(self, edit):
setting1 = self.view.settings().get('plugin_name_setting1')
setting2 = self.view.settings().get('plugin_name_setting2')
</code></pre>
<p>或从传递到函数的视图对象依赖项:</p>
<pre><code>def my_plugin_func(view):
setting1 = view.settings().get('plugin_name_setting1')
setting2 = view.settings().get('plugin_name_setting2')
</code></pre>
<p>也可以通过直接加载首选项文件来访问它们:</p>
<pre><code>settings = sublime.load_settings('Preferences.sublime-settings')
setting1 = settings.get('plugin_name_setting1')
setting2 = settings.get('plugin_name_setting2')
</code></pre>
<h2>专业人士</h2>
<p>主要的好处是不需要样板代码。您只需创建设置文件并将其放入插件的根文件夹。在</p>
<p>用户可以在每个项目的基础上全局配置插件<strong>和</strong>。在</p>
<p>要全局设置设置,用户可以使用全局首选项文件,<strong>菜单>;首选项>;设置</strong>:</p>
<pre><code>{
"plugin_name_setting1": true,
"plugin_name_setting2": true
}
</code></pre>
<p>要在项目前级别对其进行设置,可以使用项目文件设置,<strong>菜单>项目>编辑项目</strong>:</p>
<pre><code>{
"settings": {
"plugin_name_setting1": true,
"plugin_name_setting2": true
}
}
</code></pre>
<p>这些设置也可以用于keymap上下文约束:</p>
<pre><code>{
"keys": [",", "a"],
"command": "a_plugin_command",
"context": [{ "key": "setting.plugin_name_setting2" } ]
}
</code></pre>
<h2>缺点</h2>
<p>您的用户插件设置不在单独的命名设置文件中。我不认为这是一个大问题,如果你的所有插件设置前缀与你的插件名称,这样它们将在首选项文件中并排排序。我不知道其他的坏蛋是什么。在</p>