【问题标题】:Keyboard shortcut to change color scheme in Sublime Text 2?在 Sublime Text 2 中更改配色方案的键盘快捷键?
【发布时间】:2012-10-29 12:31:04
【问题描述】:

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

彼得

【问题讨论】:

    标签: sublimetext2 sublimetext


    【解决方案1】:

    在您的用户键绑定中尝试这样的操作:

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

    【讨论】:

    • @Riccardo 还有没有办法在三个方案之间切换?
    • 太棒了,+1!有什么方法可以使用主题(例如,切换 Soda Dark/Light 以及配色方案)?我尝试获取和设置"theme",但它似乎不起作用
    • Riccardo,漂亮的插件。您知道为什么这只更改当前选项卡的视图设置而不是全局设置(其他选项卡保留在用户设置中定义的配色方案中)。我想我应该更加熟悉 Sublime API。
    • settings documentation 中,它为set_setting 指定“此处修改的设置是缓冲区特定设置:它们覆盖设置文件中放置的任何设置,但适用于仅限当前文件。”目前,我不知道如何更改全局设置,抱歉...
    • 很棒的小费,谢谢!另外:我将F3 设置为在 2 个浅色主题之间切换,F4 设置为在两个深色主题之间切换,因此我实际上可以使用此代码在 4 个主题之间切换
    【解决方案2】:

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

    然后用 F8Shift+F8 循环配色方案。它有 2 个主题(深色/浅色)作为切换。


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

    可视化 AKA 屏幕:

    【讨论】:

    • 谢谢!真正的答案。
    【解决方案3】:

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

    【讨论】:

    • +1 我使用此代码通过一个键绑定更改了我的主题和配色方案。
    • 这很好,我将如何更改它以不应用于全局用户首选项,而是应用于特定于语法的首选项,例如 /User/Markdown.sublime-settings
    【解决方案4】:

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

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

    【讨论】:

      【解决方案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)
      

      【讨论】:

        【解决方案6】:

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

        【讨论】:

        • 确实如此。刚试了一下,有趣的插件。但是,您只能切换一种方式,而且您不知道要切换到哪种方式。
        【解决方案7】:

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

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

        【讨论】:

          猜你喜欢
          • 2012-08-31
          • 1970-01-01
          • 2014-12-27
          • 1970-01-01
          • 2012-07-20
          • 1970-01-01
          • 1970-01-01
          • 2014-11-23
          • 2019-08-06
          相关资源
          最近更新 更多