【发布时间】:2012-10-29 12:31:04
【问题描述】:
有没有办法为 Sublime Text 2 中的特定配色方案分配键盘快捷键?在 Emacs 中,很容易定义一个切换“夜间模式”配色方案并将其分配给键盘快捷键的功能,我想知道您是否也可以在 ST2 中做到这一点。
彼得
【问题讨论】:
有没有办法为 Sublime Text 2 中的特定配色方案分配键盘快捷键?在 Emacs 中,很容易定义一个切换“夜间模式”配色方案并将其分配给键盘快捷键的功能,我想知道您是否也可以在 ST2 中做到这一点。
彼得
【问题讨论】:
在您的用户键绑定中尝试这样的操作:
{
"keys": ["YOUR_SHORTCUT"],
"command": "set_setting",
"args":
{
"setting": "color_scheme",
"value": "Packages/Color Scheme - Default/Solarized (Light).tmTheme"
}
}
当然,将Packages/Color Scheme - Default/Solarized (Light).tmTheme 更改为您喜欢的任何主题。
如果您想在两种配色方案之间切换,您可以创建一个插件 (Tools/New Plugin...):
import sublime, sublime_plugin
class ToggleColorSchemeCommand(sublime_plugin.TextCommand):
def run(self, edit, **args):
scheme1 = args["color_scheme_1"]
scheme2 = args["color_scheme_2"]
current_scheme = self.view.settings().get("color_scheme")
new_scheme = scheme1 if current_scheme == scheme2 else scheme2
self.view.settings().set("color_scheme", new_scheme)
并将其保存在您的Packages/User 目录中。
然后像这样添加一个键绑定:
{
"keys": ["YOUR_TOGGLE_SHORCUT"], "command": "toggle_color_scheme",
"args":
{
"color_scheme_1": "Packages/Color Scheme - Default/Solarized (Light).tmTheme" ,
"color_scheme_2": "Packages/Color Scheme - Default/Solarized (Dark).tmTheme"
}
}
【讨论】:
"theme",但它似乎不起作用
set_setting 指定“此处修改的设置是缓冲区特定设置:它们覆盖设置文件中放置的任何设置,但适用于仅限当前文件。”目前,我不知道如何更改全局设置,抱歉...
F3 设置为在 2 个浅色主题之间切换,F4 设置为在两个深色主题之间切换,因此我实际上可以使用此代码在 4 个主题之间切换
如果您不想费心编辑配置文件,可以安装SchemeCycle。
然后用 F8 和 Shift+F8 循环配色方案。它有 2 个主题(深色/浅色)作为切换。
如果您更喜欢命令调色板检查Norris's 答案或尝试ColorSchemeSelector 和: Select Color Scheme 命令,它不会像Schemr 那样污染您的调色板。
可视化 AKA 屏幕:
【讨论】:
要更改全局配色方案设置(不仅仅是当前视图),请更改 Riccardo 的答案,如下所示:
import sublime, sublime_plugin
class ToggleColorSchemeCommand(sublime_plugin.TextCommand):
def run(self, edit, **args):
s = sublime.load_settings("Preferences.sublime-settings")
scheme1 = args["color_scheme_1"]
scheme2 = args["color_scheme_2"]
current_scheme = s.get("color_scheme", scheme1)
new_scheme = scheme1
if current_scheme == scheme1:
new_scheme = scheme2
if current_scheme == scheme2:
new_scheme = scheme1
s.set("color_scheme", new_scheme)
sublime.save_settings("Preferences.sublime-settings")
在使用之前,请确保您的所有视图都设置为一种配色方案!
无论您当前在“Preferences.sublime-settings - User”和“Preferences.sublime-settings - Default”下设置什么配色方案,这都应该有效。
我从 Schemrs 代码中收集了这些信息:https://github.com/benweier/Schemr/blob/master/schemr.py 和字体更改代码:“Packages\Default\font.py”
【讨论】:
/User/Markdown.sublime-settings
我刚刚发现了这个不错的小插件: https://github.com/skt84/Schemr
这并不完全允许您绑定,而是为您提供命令面板访问权限,这对我来说非常完美。 (以防万一有人像我一样通过谷歌偶然发现了这个。)
【讨论】:
要支持多种配色方案,可以像这样改变 Riccardos 的答案:
class ToggleColorSchemeCommand(sublime_plugin.TextCommand):
def run(self, edit, **args):
scheme1 = args["color_scheme_1"]
scheme2 = args["color_scheme_2"]
scheme3 = args["color_scheme_3"]
current_scheme = self.view.settings().get("color_scheme")
new_scheme = scheme1
if current_scheme == scheme1:
new_scheme = scheme2
if current_scheme == scheme2:
new_scheme = scheme3
self.view.settings().set("color_scheme", new_scheme)
【讨论】:
有一种方法可以使用Camaleon plugin 更改配色方案和主题。
【讨论】:
如果有人感兴趣,我刚刚创建了一个插件来在 N 个不同的主题和配色方案配置之间切换。在这里查看:
【讨论】: