У большинства разработчиков написание кода не начинается и не заканчивается порогом дверей офиса. Многие из нас очень часто «дорабатывают» дома, в кафе, сидя за ноутбуком или десктопом. И все мы хотим чтобы инструменты, которыми мы пользуемся, всегда были под рукой и везде работали одинаково.

В этой статье мы поговорим о синхронизации настроек одного из самых популярных редакторов — Sublime Text.

Для начала давайте выясним, какие файлы отвечают за настройки Sublime Text. Вот пути к конфигурационным файлам в самых популярных ОС :

  • MacOS: ~/Library/Application Support/Sublime Text 3/Packages/User;
  • Win: %AppData%\Sublime Text 3\Packages\User;
  • nix: ~/.config/sublime-text-3/Packages/User;

Структура папки «User»

  • файлы last-run, cache хранят временные файлы редактора;
  • каталог ca-certs хранит регистрационный ключ;
  • все остальные файлы отвечают непосредственно за настройки редактора (файлы тем, список пакетов, сочетания клавиш и ид.).

Предлагаю два варианта переноса настроек, выберите для себя подходящий:

  1. Через облачные хранилища, например, Dropbox или Google Drive.
  2. C помощью Git и репозиториев.

Способ 1. Синхронизация настроек с использованием Dropbox или Google Dive

Чтобы синхронизировать настройки этим способом, сначала нужно установить клиент Dropbox или Google Drive. Данные они синхронизируют автоматически через облако.

Если клиенты Dropbox или Google Drive установлены не в папку по умолчанию, нужно будет указать для них системный путь  %USERPROFILE%\путь к папке Dropbox.

Далее нужно скопировать имеющиеся настройки в отдельную папку и создать для нее символьную ссылку.

Для этого на компьютере, с которого будем копировать настройки, закроем редактор Sublime Text и откроем командную строку (для Windows — с правами администратора).

В командной строке пишем следующее:

для Windows:


cd %AppData%\Sublime Text 3\Packages\ или cd %AppData%\Sublime Text 2\Packages\ – для 2 версии редактора
mkdir %USERPROFILE%\Dropbox\имя папки
mv User %USERPROFILE%\Dropbox\имя папки\
cmd /c mklink /D User %USERPROFILE%\Dropbox\имя папки\User

для Linux-cистем:


cd ~/.config/sublime-text-3/Packages/ или cd ~/.config/sublime-text-3/Packages/ – для 2 версии редактора
mkdir ~/Dropbox/имя папки
mv User ~/Dropbox/имя папки/
ln -s ~/Dropbox/имя папки /User

для Mac:


cd ~/Library/Application\ Support/Sublime\ Text\ 3/Packages/ или cd ~/Library/Application\ Support/Sublime\ Text\ 3/Packages/ – для 2 версии редактора
mkdir ~/Dropbox/имя папки
mv User ~/Dropbox/имя папки /
ln -s ~/Dropbox/имя папки/User

На другом компьютере (куда будем переносить настройки), в терминале пишем:

для Windows:


cd %AppData%\Sublime Text 3\Packages\ или cd %AppData%\Sublime Text 2\Packages\
rmdir -recurse User - !!! удалит текущие настройки редактора  
cmd /c mklink /D User %USERPROFILE%\Dropbox\имя папки\User

для Linux-cистем:


cd ~/.config/sublime-text-3/Packages/ или cd ~/.config/sublime-text-2/Packages/
rm -r User - !!! удалит текущие настройки редактора 
ln -s ~/Dropbox/ имя папки /User

для Mac:


cd ~/Library/Application\ Support/Sublime\ Text\ 3/Packages/ или cd ~/Library/Application\ Support/Sublime\ Text\ 2/Packages/
rm -r User - !!! удалит текущие настройки редактора
ln -s ~/Dropbox/имя папки /User

Способ 2. Синхронизация с помощью Git и сервисами хостинга проектов (GitHub, Bitbucket)

Многие разработчики знакомы с Git, и это логичный выбор для хранения настроек и синхронизации между компьютерами, если выне против немного поработать руками. Но будьте осторожны: если вы используете сервис GitHub, и у вас нет возможности создать приватный репозиторий, лицензионные ключи приобретенных вами плагинов могут стать известны всем. Чтобы этого не произошло, а также что бы не синхронизировать временные файлы редактора, создадим .gitignore и добавим в него:

# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

#IGNORE ST FILES
#####################
bh_unicode_properties.cache
Package Control.last-run
Package Control.ca-list
Package Control.ca-bundle
Package Control.system-ca-bundle
Package Control.cache/
Package Control.ca-certs/

 

Далее создадим новую папку, инициализируем в ней репозиторий Git и перенесем в нее существующие настройки редактора. Ниже рассмотрен пример для OS Linux:


mkdir ~/ST3-config && cd ~/ST3-config && git init– создаем новую папку и инициализируем Git-репозиторий;
cd ~/.config/sublime-text-3/Packages/ && mv User ~/ST3-config – переходим в каталог с настройками и переносим его в нашу папку (ST3-config);
ln -s ~/ ST3-config/User – создаем символическую ссылку;

 

Теперь нам осталось лишь закоммитить эти настройки и выложить их на GitHub или Bitbucket.


git commit -a -m "Add ST settings files" - добавляем в репозиторий файлы и коммитим изменения;
git remote add origin + ссылка на созданный репозиторий GitHub, Bitbucket;
git push -u origin master - заливаем репозиторий на GitHub, Bitbucket;

Все, настройки с этого момента хранятся в репозитории на GitHub или Bitbucket. Перенос настроек на другой компьютер осуществляется таким же способом, как и с помощью Dropbox или Google Drive, за исключением того что, нам нужно «клонировать» репозиторий:


mkdir ~/ST3-config && cd ~/ST3-config && git clone «ссылка на репозиторий»
cd ~/.config/sublime-text-3/Packages/
rm -r User - !!! удалит текущие настройки редактора 
ln -s ~/ST3-config /User

Как видите, сихронизировать настройки редактора Sublime Text не так уж и сложно. Плюс к тому, система контроля версий дает нам доступ ко всей истории изменения настроек.

При переносе настроек с MacOS на другие операционные системы есть небольшая проблема. Пользовательские клавиатурные сокращениятипа «command + option + K» не поймут другие ОС. Старайтесь изначально делать кроссплатформенные сокращения типа «ctrl + alt + a».

Недавно появился еще один очень простой способ синхронизации настроек — через плагин Sublimall. Правда, я его еще не пробовал, насколько он удобен и стабилен, неизвестно. Пока он еще в альфа-версии, так что все возможно. Но будем следить за его развитием.