Сочетание клавиш для изменения цветовой схемы в Sublime Text 2?

есть ли способ назначить сочетание клавиш для определенной цветовой схемы в Sublime Text 2? В Emacs легко определить функцию, которая переключает цветовую схему «ночной режим» и назначает ее сочетанию клавиш, мне было интересно, можете ли вы также сделать это в ST2.

Петр


person pkazmierczak    schedule 29.10.2012    source источник


Ответы (7)


Попробуйте что-то вроде этого в привязке пользовательского ключа:

{
    "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"
    }
}
person Riccardo Marotti    schedule 29.10.2012
comment
@Riccardo Есть ли способ переключаться между тремя схемами? - person Yo Ludke; 04.02.2013
comment
Круто, +1! Есть ли способ сделать это с темами (например, переключение Soda Dark/Light вместе с цветовой схемой)? Я пытался получить и установить "theme", но это не работает - person FeifanZ; 17.07.2013
comment
Риккардо, отличный плагин. Знаете ли вы, почему это изменяет только текущую настройку просмотра вкладки, а не глобальную (другие вкладки остаются в цветовой схеме, определенной в настройках пользователя). Думаю, мне следует лучше познакомиться с Sublime API. - person Olivier Lacan; 13.09.2013
comment
В документации по настройкам указано для set_setting, что The измененные здесь настройки относятся к настройкам буфера: они переопределяют любые настройки, размещенные в файле настроек, но применяются только к текущему файлу. На данный момент я не знаю, как изменить глобальные настройки, извините.. . - person Riccardo Marotti; 14.09.2013
comment
Шикарный топик, спасибо! В качестве дополнения: я установил F3 для переключения между 2 светлыми темами и F4 для переключения между двумя темными темами, поэтому я действительно могу переключаться между 4 темами, используя этот код. - person Philipp; 02.06.2015

Если вы не хотите возиться с редактированием файлов конфигурации, вы можете установить SchemeCycle.

Затем переключайте цветовые схемы с помощью F8 и Shift+F8. С 2 темами (темная / светлая) он действует как переключение.


Если вы предпочитаете командную палитру, проверьте ответ Норриса или попробуйте ColorSchemeSelector с командой : Select Color Scheme, он не будет загрязнять вашу палитру так сильно, как Схема.

Экраны визуализации АКА:

введите здесь описание изображениявведите здесь описание изображения

person A.D.    schedule 21.03.2013
comment
Благодарю вас! Настоящий ответ. - person Mark C; 03.10.2020

Чтобы изменить глобальные настройки цветовой схемы (а не только текущий вид), измените ответ Риккардо следующим образом:

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"

person sevanspowell    schedule 11.12.2013
comment
+1 Я использовал этот код, чтобы изменить тему и цветовую схему с помощью одной комбинации клавиш. - person Abluescarab; 03.02.2014
comment
Это здорово, как бы я изменил это, чтобы применить не к глобальным настройкам пользователя, а к конкретным настройкам синтаксиса, например /User/Markdown.sublime-settings - person Merlin; 28.08.2018

Я только что нашел этот приятный маленький плагин: https://github.com/skt84/Schemr.

Это не совсем позволяет вам привязываться, но вместо этого дает вам доступ к палитре команд, что идеально подходит для меня. (На тот случай, если кто-нибудь наткнется на это через Google, как и я.)

person justnorris    schedule 18.02.2013

Чтобы поддерживать несколько цветовых схем, можно изменить ответ Риккардо следующим образом:

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)
person Yo Ludke    schedule 04.02.2013

Существует способ изменить цветовую схему вместе с темой с помощью плагина Camaleon.

person Mihail    schedule 13.05.2014
comment
На самом деле это так. Только что попробовал, забавный плагин. Однако вы можете переключиться только на один способ, и вы не знаете, на какой из них вы переключаетесь. - person firedev; 13.05.2014

Если кому-то интересно, я только что создал плагин для переключения между N различными конфигурациями тем и цветовых схем. Проверьте это здесь:

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

person andresbravog    schedule 08.03.2014
comment
как им пользоваться чувак? - person Vijay; 14.05.2021