Опишу несколько полезных вещей, которые я систематически использую. В основном они касаются организации рабочего пространства и опций конфигурационного файла sublime text 3.
Файл проекта в репозитории¶
Одни люди считают, что конфиги среды разработки не должны храниться в репозитории, другие вполне такое допускают. Я тоже считаю, что вполне допустимо хранить параметры редактора в проекте, ведь хранят же вимовские модлайны в комментариях файлов? Файл проекта в репозитории лежит отдельно и никому не мешает, изменения там происходят очень редко. Если кому-то не нравятся параметры этого конфига, он может себе локально его скопировать, либо вообще другой создать с нуля, поскольку sublime text никак этот файл автоматически не обрабатывает при работе с каталогом проекта.
На практике всё выглядит так:
- Создаём новый проект в sublime text.
- Добавляем в него весь каталог проекта (или отдельные его папки).
- Сохраняем проект в файл
PROJECT_NAME.sublime-project
внутрь каталога проекта. - Открываем файл проекта в редакторе и модифицируем записи в разделе
"folders"
, заменяя абсолютные пути на относительные (например, если у вас добавлен весь каталог проекта в папки, то в параметре"path"
пропишем просто"."
).
Дальше добавляем этот файл в систему контроля версий, а вот файл воркспейса наоборот исключаем (он обычно называется PROJECT_NAME.sublime-workspace
и находится рядом с файлом проекта в том же каталоге). Файл воркспейса исключаем потому, что он обновляется очень часто и особой нужды его коммитить нет, поэтому добавим его в .gitignore
или что там у вас вместо него.
Чтобы файл воркспейса не мешался в панели редактора, добавим его в конфиге проекта в исключения (об исключениях подробнее будет ниже написано):
"file_exclude_patterns": ["*.sublime-workspace"],
Локальные настройки редактора для проекта¶
В конфиге проекта можно добавлять настройки редактора, которые для него будут более приоритетным, чем общие настройки. Они находятся в параметре "settings"
на самом верхнем уровне:
:::javascript
{
"folders":
[
// здесь папки проекта
],
"settings":
{
// а здесь настройки редактора, специфичные для данного проекта
"rulers": [100]
}
}
Там можно добавлять любые настройки редактора.
Исключение файлов из проекта¶
Некоторые файлы в редакторе не нужны: скомпилированные объектные файлы, промежуточные файлы сборки, картинки, сборочные каталоги и так далее. Они мешаются не только в дереве файлов проекта, но ещё и в результатах поиска по файлам, например.
В sublime text можно скрывать в проекте файлы и целые каталоги, для этого есть два параметра ("file_exclude_patterns"
и "folder_exclude_patterns"
), их можно размещать в глобальных настройках редактора, в локальных настройках проекта, для каждой папки проекта (в блоке "folders"
). Синтаксис у этих параметров: обычные файловые wildcard-выражения:
:::javascript
"folders":
[
{
"follow_symlinks": true,
"path": ".",
"name": "src",
"file_exclude_patterns": ["*.sublime-workspace"],
"folder_exclude_patterns": ["_build", "_images"]
}
],
Специфичные сборочные системы¶
В конфиге проекта можно также хранить параметры сборочных систем, специфичных для проекта. Они располагаются в блоке "build_systems"
, на том же уровне, что и "folders"
и "settings"
. Вот пример такого блока:
:::javascript
"build_systems":
[{
"name": "Build HTML",
"cmd": ["make", "SPHINXBUILD=~/python-ves/sphinx/bin/sphinx-build", "clean", "html"]
}],
После добавления и сохранения в меню Tools → Build System появится новый пункт с именем Build HTML. Синтаксис тот же самый, что и в обычном конфиге билдеров (документация по параметрам этой секции здесь). Естественно, вы можете добавлять несколько разных сборочных систем, все они появятся в меню.