在Sublime Text(3)中,我可以选择用于拼写检查的字典。但是,此设置似乎是全局的,而不是基于每个文件。 当我处理使用不同语言的多个文件时,这很烦人。 如何实现Sublime Text会记住用于文件的字典?
答案 0 :(得分:2)
通常需要根据文件的语法设置设置(一个用于 javascript 文件,另一个用于 css 文件等)。您可以使用语法特定设置轻松实现此目标。但有时您需要特定于文件的设置(具有相同语法且具有不同设置值的文件)。我给你两种情况的示例解决方案。
为了设置特定于视图的设置(类似于特定于文件),您可以编写插件。这个简单的示例显示了一个输入面板,您可以在其中为打开的文件设置所需的字典。
import sublime, sublime_plugin
class Example(sublime_plugin.TextCommand):
def run(self, edit):
"""Default dictionary (caption)"""
defaultDict = 'Packages/Language - English/en_US.dic'
if self.view.settings().get('spell_check') == True and self.view.settings().get('dictionary') != None:
defaultDict = self.view.settings().get('dictionary')
"""Show panel to input dictionary name"""
self.view.window().show_input_panel('Dictionary value (cancel to disable spell check)', defaultDict, self.setDictionary, None, self.disableSpellCheck)
def setDictionary(self, dictionary):
"""Enables spell check and sets the dictionary (it is associated with the view)"""
self.view.settings().set('spell_check', True)
self.view.settings().set('dictionary', dictionary)
def disableSpellCheck(self):
self.view.settings().erase('spell_check')
self.view.settings().erase('dictionary')
将 example.py 保存在 Packages> User 中。然后添加一个键绑定并在您关注所需视图时触发它:
{ "keys": ["ctrl+alt+e"], "command": "example" }
请注意,这是特定于视图的,因此如果您关闭 sublime 然后重新打开它,则会恢复设置,但如果您关闭文件标签,则设置会丢失,因此如果您打开将来您必须重新设置该设置。要添加真实的特定于文件的设置,您需要一个更复杂的插件来扩展EventListener并读取文件名以设置语法。
除默认设置和用户设置外,您还可以使用语法特定设置。
假设您要为 javascript 文件设置dictonary,添加所需的语法特定设置,打开 javascript 源文件,然后转到菜单 { {1}} ,并在打开的文件中设置设置:
Preferences>Settings-more>Syntax-specific-user
最后保存,现在您的 javascript 文件正在使用指定的dictonary。对其他文件类型重复进程。
请注意,这不是特定于文件的,而是特定于语法的,因此如果您确实需要针对不同 javascript 文件使用不同的词典(例如),则需要使用其他方式。