Sublime Text 3, автоматический выбор Build System?

В Sublime есть автоматический выбор системы сборки, но работает он только для предустановленных Build System.

У меня есть две своих Build System, но автоматически для файлов они не переключаются, а стандартные я отредактировать не могу, т.к. не могу найти файлы конфигурации.

Как комфортно запускать python код в одной вкладке и C++ код в другой вкладке? Без ручного переключения Build System каждый раз.
  • Вопрос задан
  • 983 просмотра
Решения вопроса 1
Kristinita
@Kristinita
Во Вселенной есть Саша Черных и всё остальное
Можно задать горячие клавиши для тех builds (далее также «билдов» и т. п.), которыми пользуетесь.


1. Собственные builds

PreferencesKey Bindings - User. Если прежде не использовали собственные хоткеи, вставляем такой код:

[{ "keys": ["ctrl+alt+b"], "command": "build", "args": {"build_system": "Packages/User/SashaIsMyIdol.sublime-build", "variant": "" }]

Когда же уже приходилось вписывать хоткеи в этот файл с синтаксисом JSON, [квадратные скобки] нужно ставить только в начале и конце, но не между командами, перечисляемыми через запятую. Пример файла:

[
// Clickable URL — открыть URL, на которую наведён курсор
    { "keys": ["alt+enter"], "command": "open_url_under_cursor" },
// Открыть PowerShell
    { "keys": ["ctrl+7, ctrl+t"], "command": "open_terminal" },
// Наш Build
    { "keys": ["ctrl+alt+b"], "command": "build", "args": {"build_system": "Packages/User/SashaIsMyIdol.sublime-build", "variant": "" }
]

keys — произвольный, но незанятый шорткат,
build_system — путь к файлу Вашего билда с расширением .sublime-build, начиная с папки Packages.

Нажимаем горячие клавиши, — в примере это Ctrl+Alt+B, → build должен запуститься.


2. Builds по умолчанию

Принцип тот же: задать горячие клавиши в файле Key Bindings - User. Нужно ещё узнать, где лежат файлы билдов.

Положим, мы работаем с Ruby. Ctrl+Shift+PPackageResourceViewer: Open Resource (благодаря fuzzy-поиску достаточно ввести prv) → RubyRuby.sublime-build. В title страницы смотрим путь к файлу билда, его и вписываем:

{ "keys": ["ctrl+7, ctrl+b"], "command": "build", "args": {"build_system": "Packages/Ruby/Ruby.sublime-build", "variant": "" }},

Аналогичным образом находим пути к builds для остальных языков программирования: для Python это Packages/Python/Python.sublime-build, у плюсов Packages/C++/C++ Single File.sublime-build.


3. Альтернативный вариант

Сначала у меня не срабатывал из-за опечатки автора книги Sublime Text Power User.

Делаем так, чтобы когда у нас были открыты файлы для Python, например, с расширением .py, запускался бы Build Python, файлы для C++, например, с расширением .ex — соответственно, для C++. В файле вашего билда с расширением .sublime-build необходимо добавить параметр selector, значением которого будет являться общая для вашего языка разметки/программирования или инструмента программирования часть т. н. «области видимости» (scope). Как получить области видимости, подробно расписано тут. Нам нужно только то, что до первого пробела; допустим, если мы получили
source.python meta.function.python entity.name.function.python
, необходимо будет подставить только source.python . Пример билда для Python:

{
    "cmd": ["python", "-u", "$file"],
    "file_regex": "^[ ]*File

quot;(...*?)

quot;, line ([0-9]*)",
    "selector": "source.python"
}

Для C++:

{
	    "cmd": ["g++", "$file", "-o", "$file_base_name", "-I/usr/local/include"],
	    "selector": "source.c++",
	    "windows": {
	       "cmd": ["cl", "/Fo${file_path}", "/O2", "$file"]
	    }
	}


Спасибо.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы