用于在Sublime Text 2中更改颜色方案的键盘快捷键?

时间:2012-10-29 12:31:05

标签: sublimetext2 sublimetext

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

·彼得

7 个答案:

答案 0 :(得分:43)

在用户密钥绑定中尝试这样的事情:

{
    "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"
    }
}

答案 1 :(得分:12)

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

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


如果您更喜欢使用命令选项板检查Norris's答案或使用: Select Color Scheme命令尝试ColorSchemeSelector,则不会像Schemr那样污染您的托盘。

可视化AKA屏幕:

enter image description here enter image description here

答案 2 :(得分:9)

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

答案 3 :(得分:7)

我刚发现这个漂亮的小插件: https://github.com/skt84/Schemr

它并不能完全允许你绑定,而是给你一个Command Palette访问权限,这对我来说非常合适。 (以防万一有人像我一样通过谷歌偶然发现这一点。)

答案 4 :(得分: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)

答案 5 :(得分:4)

有一种方法可以使用Camaleon plugin更改颜色方案和主题。

答案 6 :(得分:3)

如果有人感兴趣我只是创建了一个插件来切换N个不同的主题和colorscheme配置。在这里查看:

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