Этот вопрос похож на этот Можно ли связать команды привязки клавиш в возвышенном тексте 2? С тех пор прошло несколько лет вопрос (и данные ответы), и я использую Sublime Text 3 (а не 2), поэтому я считаю, что этот новый вопрос оправдан.
Я установил пользовательскую привязку клавиш:
{
"keys": ["f5"],
"command": "project_venv_repl"
}
чтобы запустить скрипт project_venv_repl.py
:
import sublime_plugin
class ProjectVenvReplCommand(sublime_plugin.TextCommand):
"""
Starts a SublimeREPL, attempting to use project's specified
python interpreter.
Instructions to make this file work taken from:
https://stackoverflow.com/a/25002696/1391441
"""
def run(self, edit, open_file='$file'):
"""Called on project_venv_repl command"""
cmd_list = [self.get_project_interpreter(), '-i', '-u']
if open_file:
cmd_list.append(open_file)
self.repl_open(cmd_list=cmd_list)
def get_project_interpreter(self):
"""Return the project's specified python interpreter, if any"""
settings = self.view.settings()
return settings.get('python_interpreter', '/usr/bin/python')
def repl_open(self, cmd_list):
"""Open a SublimeREPL using provided commands"""
self.view.window().run_command(
'repl_open', {
'encoding': 'utf8',
'type': 'subprocess',
'cmd': cmd_list,
'cwd': '$file_path',
'syntax': 'Packages/Python/Python.tmLanguage'
}
)
Это запускает открытый файл в SublimeREPL при нажатии клавиши f5
.
Что мне нужно, так это способ имитировать ярлык «Сборка» (Ctrl+B
). А именно: при нажатии клавиши f5
текущий (открытый) файл должен быть сохранен перед выполнением команды project_venv_repl
.
Можно ли добавить эту инструкцию в сценарий project_venv_repl.py
или в строку command
в определении привязки клавиш?
self.view.run_command("save")
к вашему методуrun()
. - person MattDMo   schedule 28.09.2016