ключевая карта команд sublimeREPL в Sublime Text 2

Я пытаюсь сопоставить сочетания клавиш для команд плагина SublimeREPL. Глядя на SublimeREPL, похоже, что команда пункта меню определяется как:

Default.sublime-commands { "caption" : "SublimeREPL: SBT для открытой папки", "command": "run_existing_window_command", "args": { "id": "repl_sbt", "file": "config/Scala/Main.sublime-menu" } }

or in

Main.sublime-menu

               {"command": "repl_open",
                 "caption": "SBT for opened folder",
                 "id": "repl_sbt",
                 "mnemonic": "b",
                 "args": {
                    "type": "subprocess",
                    "encoding": "utf8",
                    "external_id": "scala",
                    "cmd": {"linux": ["sbt"],
                            "osx": ["sbt"],
                            "windows": ["sbt"]},
                    "soft_quit": "\nexit\n",
                    "cwd": "$folder",
                    "cmd_postfix": "\n", 
                    "extend_env": {"osx": {"EMACS": "1", "PATH": "{PATH}:/usr/local/bin"},
                                   "linux": {"EMACS": "1", "PATH": "{PATH}:/usr/local/bin"},
                                   "windows": {"EMACS": "1"}},
                    "suppress_echo": false, 
                    "syntax": "Packages/Scala/Scala.tmLanguage"
                    }
                } 

Я попытался сделать привязку клавиш в настройках SublimeREPL.sublime к:

[{ "keys": ["super+shift+k"], "command": "run_existing_window_command", "args":
        {
            "id": "repl_sbt",
            "file": "config/Scala/Main.sublime-menu"
        }
}]

Но когда я пытаюсь использовать его, консоль Sublime просто говорит:

нет команды для селектора: noop:

То же самое, если я сопоставлю его с:

[{ "keys": ["super+shift+k"],  "command": "repl_open",
                 "args": {
                    "type": "subprocess",
                    "encoding": "utf8",
                    "external_id": "scala",
                    "cmd": {"linux": ["sbt"],
                            "osx": ["sbt"],
                            "windows": ["sbt"]},
                    "soft_quit": "\nexit\n",
                    "cwd": "$folder",
                    "cmd_postfix": "\n", 
                    "extend_env": {"osx": {"EMACS": "1", "PATH": "{PATH}:/usr/local/bin"},
                                   "linux": {"EMACS": "1", "PATH": "{PATH}:/usr/local/bin"},
                                   "windows": {"EMACS": "1"}},
                    "suppress_echo": false, 
                    "syntax": "Packages/Scala/Scala.tmLanguage"
                    }

}]

person Dougnukem    schedule 24.11.2012    source источник


Ответы (1)


Ваша первая привязка клавиш верна и должна работать так, как ожидалось. Место находится в файле Настройки -> Привязки клавиш — Пользователь.

[{ "keys": ["super+shift+k"], "command": "run_existing_window_command", "args":
        {
            "id": "repl_sbt",
            "file": "config/Scala/Main.sublime-menu"
        }
}]

основываясь на вашем описании, я подозреваю, что какая-то другая команда захватывает super+shift+k.

>>> sublime.log_commands(True)

позволит вам увидеть, что вызывается, когда.

person Wojciech Bederski    schedule 24.11.2012
comment
Вы правы, что это сработало. Моя проблема заключалась в том, что я поместил его в SublimeREPL.sublime-settings вместо моего файла привязки клавиш пользователя ~/Library/Application Support/Sublime Text 2/Packages/User/Default (OSX).sublime-keymap - person Dougnukem; 24.11.2012