Не удается запустить py файлы с помощью горячей клавиши в sublimetext3 - PullRequest
1 голос
/ 16 марта 2019

Я обновил свой sublime3 до последней версии, затем я не могу использовать горячие клавиши для запуска моих py-файлов.Вот моя конфигурация горячих клавиш:

[
{
    "caption": "Tmpl: Create python",
    "command": "sublime_tmpl",
    "keys": ["ctrl+alt+p"], "args": {"type": "python"}
},
{
    "keys":["f1"],
    "caption": "SublimeREPL: Python",
    "command": "run_existing_window_command", "args":
    {
        "id": "repl_python",
        "file": "config/Python/Main.sublime-menu"
    }
},
{
    "keys":["f2"],
    "caption": "SublimeREPL: Python - RUN current file",
    "command": "run_existing_window_command", "args":
    {
        "id": "repl_python_run",
        "file": "config/Python/Main.sublime-menu"
    }
},

]

hot key configuration for my sublimeREPL

Когда я нажимаю F2 или F1 , ничего не произошло.

1 Ответ

0 голосов
/ 18 марта 2019

Похоже, что Sublime Text 3 build 3200 нарушил команду run_existing_window_command.Как указано в в этом ответе , решение состоит в том, чтобы вместо этого вызвать команду, которую использует элемент меню SublimeREPL.

Если вы перейдете в каталог пакетов Sublime Text 3 (по умолчанию AppData/Roaming/Sublime Text 3/)в Windows), вы можете увидеть установленные вами пакеты.Из этого каталога, если вы откроете SublimeREPL/config/Python/Main.sublime-menu, вы увидите большой файл ole json, который выглядит примерно так:

[
     {
        "id": "tools",
        "children":
        [{
            "caption": "SublimeREPL",
            "mnemonic": "R",
            "id": "SublimeREPL",
            "children":
            [
                {"caption": "Python",
                "id": "Python",

                 "children":[
                    {"command": "repl_open",
                     "caption": "Python",
                     "id": "repl_python",
                     "mnemonic": "P",
                     "args": {
                        "type": "subprocess",
                        "encoding": "utf8",
                        "cmd": ["python", "-i", "-u"],
                        "cwd": "$file_path",
                        "syntax": "Packages/Python/Python.tmLanguage",
                        "external_id": "python",
                        "extend_env": {"PYTHONIOENCODING": "utf-8"}
                        }
                    }
   <---snip--->
                ]}
            ]
        }]
    }
]

Обратите внимание, что самый внутренний ключ children представляет собой список словарей с command с и args.Мы собираемся скопировать их в файл sublime-keymap и заменить уже существующие command и args.Например, ваш ярлык для открытия REPL Python теперь будет выглядеть так:

"keys": ["f1"],
"command": "repl_open",
"args": {
    "type": "subprocess",
    "encoding": "utf8",
    "cmd": ["python", "-u", "$file_basename"],
    "cwd": "$file_path",
    "syntax": "Packages/Python/Python.tmLanguage",
    "external_id": "python",
    "extend_env": {"PYTHONIOENCODING": "utf-8"}
}

Нажатие F1 теперь должно работать так же, как раньше.

...