设置
Sublime Text 将配置数据存储在 .sublime-settings
文件中。灵活性是以稍微复杂的设置应用系统为代价的。但是,这里有一个经验法则
始终将您的个人设置文件放在 Packages/User
下,以确保它们优先于任何其他冲突的设置文件。
有了这些,让我们揭开设置工作原理的神秘面纱,以取悦那些有受虐倾向的读者。
格式
设置文件使用 JSON 并且具有 .sublime-settings
扩展名。
设置类型
每个 .sublime-settings
文件的名称决定了它的用途。名称可以是描述性的(例如 Preferences (Windows).sublime-settings
或 Minimap.sublime-settings
),也可以与设置文件控制的内容相关。例如,文件类型设置需要使用文件类型的 .tmLanguage
语法定义的名称。因此,对于 .py
文件类型,其语法定义包含在 Python.tmLanguage
中,相应的设置文件将被称为 Python.sublime-settings
。
此外,某些设置文件仅适用于特定平台。这可以从文件名推断出来,例如 Preferences ({platform}).sublime-settings
。platform 的有效名称是 Windows
、Linux
、OSX
。
这很重要:Packages/User
文件夹中的特定于平台的设置文件将被忽略。这样,您可以确保单个设置文件覆盖所有其他设置文件。
设置更改通常会实时更新,但您可能需要重新启动 Sublime Text 才能加载新的设置文件。
如何访问和编辑常用设置文件
除非您需要对设置进行非常细粒度的控制,否则您可以通过首选项 | 设置 - 用户和首选项 | 设置 - 更多菜单项访问主要配置文件。不建议编辑首选项 | 设置 - 默认,因为更改将在每次软件更新时被还原。但是,您可以使用该文件作为参考:它包含解释所有可用全局和文件类型设置目的的注释。
.sublime-settings
文件的优先级顺序
同一个设置文件(例如 Python.sublime-settings
)可能出现在多个位置。所有在相同名称的文件中定义的设置将被合并在一起,并根据预定义的规则覆盖。有关更多信息,请参见 merging-and-order-of-precedence
。
让我们再次记住,任何给定的设置文件在 Packages/User
中最终会覆盖所有其他相同名称的设置文件。
除了设置文件之外,Sublime Text 还维护会话数据,这是当前正在编辑的文件集的配置。会话数据会在您处理文件时更新,因此,如果您以任何方式调整特定文件的设置(主要是通过 API 调用),它们将被记录在会话中,并将优先于任何适用的 .sublime-settings
文件。
要检查正在编辑的特定文件的设置值,请从控制台使用 view.settings().get("setting_name")
。
最后,还值得注意的是,某些设置可能会自动为您调整。如果您对某些设置的值感到困惑,请记住这一点。例如,某些与空格相关的设置和 syntax
设置就是这种情况。
下面,您可以看到 Sublime Text 处理 Windows 上 Python 文件的假设设置层次结构的顺序。
- Packages/Default/Preferences.sublime-settings
- Packages/Default/Preferences (Windows).sublime-settings
- Packages/User/Preferences.sublime-settings
- Packages/Python/Python.sublime-settings
- Packages/User/Python.sublime-settings
- 当前文件的会话数据
- 自动调整的设置
此列表并不详尽。有关优先级顺序的完整示例,请参见 设置层次结构。
全局编辑器设置和全局文件设置
这些设置存储在 Preferences.sublime-settings
和 Preferences ({platform}).sublime-settings
文件中。默认值可以在 Packages/Default
中找到。
platform 的有效名称是 Windows
、Linux
、OSX
。
文件类型设置
如果您想针对特定文件类型,请将 .sublime-settings
文件命名为文件类型的语法定义。例如,如果我们的语法定义 +被称为 Python.tmLanguage
,我们需要将我们的设置文件命名为 Python.sublime-settings
。
特定文件类型的设置文件通常位于包中,例如 +Packages/Python
,但同一文件类型可以在不同位置有多个设置文件。
与全局设置类似,可以为文件类型建立特定于平台的设置。例如,Python (Linux).sublime-settings
仅在 Linux 下才会被查询。
此外,让我们强调一下,在 Packages/User
下,只会读取 Python.sublime-settings
,而不会读取任何 Python ({platform}).sublime-settings
变体。
无论其位置如何,任何特定于文件类型的设置文件都优先于影响文件类型的全局设置文件。
设置层次结构
下面,您可以看到 Sublime Text 处理 Windows 上 Python 文件的详尽设置来源。与往常一样,后面的规范会覆盖前面的规范。
- 全局设置
Packages/Default/Preferences.sublime-settings
Packages/Default/Preferences (Windows).sublime-settings
Packages/AnyOtherPackage/Preferences.sublime-settings
Packages/AnyOtherPackage/Preferences (Windows).sublime-settings
Packages/User/Preferences.sublime-settings
- 来自当前项目的设置
- 特定于语法的设置
Packages/Python/Python.sublime-settings
Packages/Python/Python (Windows).sublime-settings
Packages/User/Python.sublime-settings
- 当前文件的会话数据(特定于视图的设置)
- 自动调整的设置
请注意,设置文件也可能出现在包子目录中,为了简洁起见,这些目录已被排除在外。
在哪里存储用户设置(再次)
无论何时您想保存设置,尤其是当这些设置应该在软件更新之间保留时,请将相应的 .sublime-settings
文件放在 Packages/User
中。