web-dev-qa-db-ja.com

Sublime Text 2の配色を変更するためのキーボードショートカット?

sublime Text 2の特定の配色にキーボードショートカットを割り当てる方法はありますか? Emacsでは、「ナイトモード」の配色を切り替えてキーボードショートカットに割り当てる関数を簡単に定義できます。ST2でも実行できるかどうか疑問に思いました。

ピョートル

22
pkazmierczak

ユーザーキーバインディングで、次のようなことを試してください。

_{
    "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を好きなテーマに変更してください。

2つの配色を切り替えたい場合は、プラグイン(_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"
    }
}
_
43

設定ファイルの編集に煩わされたくない場合は、インストールできます SchemeCycle

次に、配色を次のように循環させます F8 そして Shift+F8。 2つのテーマ(ダーク/ライト)で、トグルとして機能します。


コマンドパレットをチェックしたい場合は、 Norris's 回答するか、 ColorSchemeSelector with : Select Color Schemeコマンド、それはあなたのパレットを Schemr ほど汚染しません。

視覚化AKA画面:

enter image description hereenter image description here

12
A.D.

(現在のビューだけでなく)グローバル配色設定を変更するには、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")

これを使用する前に、すべてのビューが1つの配色に設定されていることを確認してください。

これは、「Preferences.sublime-settings-User」および「Preferences.sublime-settings-Default」で現在設定されている配色に関係なく機能するはずです。

この情報をSchemrsコードから収集しました: https://github.com/benweier/Schemr/blob/master/schemr.py およびフォント変更コード: "Packages\Default\font.py"

9
sevanspowell

私はちょうどこの素敵な小さなプラグインを見つけました: https://github.com/skt84/Schemr

これは正確にバインドすることを許可しませんが、代わりにコマンドパレットへのアクセスを提供します。これは私にとって完璧です。 (誰かが私のようにグーグル経由でこれに遭遇した場合に備えて。)

7
justnorris

複数の配色をサポートするには、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
Yo Ludke

Camaleonプラグイン でテーマと一緒に配色を変更する方法があります。

4
Mihail

興味のある人がいれば、N個の異なるテーマとカラースキームの構成を切り替えるプラグインを作成しました。ここでそれをチェックしてください:

https://Gist.github.com/andresbravog/942979

3
andresbravog