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

pka*_*zak 22 sublimetext sublimetext2

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

彼得·

Ric*_*tti 43

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

{
    "keys": ["YOUR_SHORTCUT"],
    "command": "set_setting",
    "args":
    {
        "setting": "color_scheme",
        "value": "Packages/Color Scheme - Default/Solarized (Light).tmTheme"
    }
}
Run Code Online (Sandbox Code Playgroud)

当然,改为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)
Run Code Online (Sandbox Code Playgroud)

并将其保存在您的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"
    }
}
Run Code Online (Sandbox Code Playgroud)


A.D*_*.D. 12

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

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


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

可视化AKA屏幕:

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


小智 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")
Run Code Online (Sandbox Code Playgroud)

在使用之前,请确保将所有视图设置为一个配色方案!

无论您在"Preferences.sublime-settings - User"和"Preferences.sublime-settings - Default"下的当前设置颜色方案,这都应该有效.

我从Schemrs代码中收集了这些信息:https://github.com/benweier/Schemr/blob/master/schemr.py 和字体更改代码:"Packages\Default\font.py"


jus*_*ris 7

我刚刚找到了这个漂亮的小插件:https: //github.com/skt84/Schemr

这并不完全允许你绑定,而是给你一个命令调色板访问,这对我来说非常完美.(以防万一有人像我一样通过谷歌偶然发现这件事.)


Yo *_*dke 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)
Run Code Online (Sandbox Code Playgroud)