25

有没有办法为 Sublime Text 2 中的特定配色方案分配键盘快捷键?在 Emacs 中,很容易定义一个切换“夜间模式”配色方案并将其分配给键盘快捷键的功能,我想知道您是否也可以在 ST2 中做到这一点。

彼得

4

7 回答 7

46

在您的用户键绑定中尝试这样的事情:

{
    "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"
    }
}
于 2012-10-29T12:49:37.733 回答
13

如果您不想打扰编辑配置文件,您可以安装SchemeCycle

F8然后使用和循环配色方案Shift+F8。它有 2 个主题(暗/亮)作为切换。


如果您更喜欢 Command Palette 检查Norris 的答案或使用命令尝试ColorSchemeSelector: Select Color Scheme,它不会像Schemr那样污染您的调色板。

可视化 AKA 屏幕:

在此处输入图像描述 在此处输入图像描述

于 2013-03-21T16:44:43.833 回答
10

要更改全局配色方案设置(不仅仅是当前视图),请更改 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”

于 2013-12-11T05:15:58.467 回答
7

我刚刚发现了这个不错的小插件: https ://github.com/skt84/Schemr

这并不完全允许您绑定,而是为您提供命令调色板访问权限,这对我来说非常完美。(以防万一有人像我一样通过谷歌偶然发现这个。)

于 2013-02-18T08:21:03.203 回答
5

为了支持多种配色方案,可以像这样改变 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)
于 2013-02-04T12:52:05.867 回答
4

有一种方法可以使用Camaleon 插件更改配色方案和主题。

于 2014-05-13T07:10:22.890 回答
3

如果有人感兴趣,我刚刚创建了一个插件来在 N 个不同的主题和配色方案配置之间切换。在这里查看:

https://gist.github.com/andresbravog/9429793

于 2014-03-08T12:30:00.897 回答