Клавишна комбинация за промяна на цветовата схема в 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 теми (тъмно / светло) действа като превключване.


Ако предпочитате Command Palette, проверете отговора на Norris или опитайте ColorSchemeSelector с команда : Select Color Scheme, той няма да замърси вашата палета толкова, колкото Schemr.

Визуализация AKA екрани:

въведете описание на изображението туквъведете описание на изображението тук

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 – Потребител“ и „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

Което не ви позволява точно да обвързвате, но вместо това ви дава достъп до Command Palette, което е идеално за мен. (В случай, че някой се натъкне на това чрез 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