Sublime Text 2 для Drupal разработчика

19 декабря 2013 в 1:22

Многим людям очень нравится редактор кода Sublime Text 2. Некоторые просто фанатеют от него, другие не очень хвалят. В этой статье я попробую оценить полезность данного инструмента для Drupal разработчика со своей субъективной точки зрения.

  1. Установим Sublime. Для этого перейдем на http://www.sublimetext.com/2, выберем подходящий для нас дистрибутив, скачаем и установим. Здесь вроде все стандартно

  2. Далее установим Sublime Package Control. Это менеджер пакетов для нашего редактора. Он позволяет устанавливать, удалять, обновлять необходимые пакеты. Для установки Sublime Package Control нажимаем комбинацию клавиш "ctrl+`" и вводим в появившуюся консоль следующую python строку:
    import urllib2,os; pf='Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler( ))); open( os.path.join( ipp, pf), 'wb' ).write( urllib2.urlopen( 'http://sublime.wbond.net/' +pf.replace( ' ','%20' )).read()); print( 'Please restart Sublime Text to finish installation')

    Возможно, для Вашей OS команда будет иметь немного другой вид. Более подробно Вы можете ознакомиться с установкой Sublime Package Control на https://sublime.wbond.net/installation#st2

  3. Обновим настройки для поддержки Drupal Coding Standards (что это такое читаем здесь). Для этого идем в настройки, в секцию Settings - User и вставляем следующее (не забывая добавить запятую между этим и существующими правилами, но проверяем, что нету запятой в последней строке) :
    "bold_folder_labels": true,
    "caret_style": "wide",
    "default_line_ending": "unix",
    "draw_white_space": "all",
    "ensure_newline_at_eof_on_save": true,
    "fade_fold_buttons": false,
    "fallback_encoding": "UTF-8",
    "find_selected_text": true,
    "font_options":
    [
      "subpixel_antialias"
    ],
    "highlight_line": true,
    "line_padding_bottom": 1,
    "open_files_in_new_window": false,
    "rulers":
    [
      80
    ],
    "shift_tab_unindent": true,
    "tab_size": 2,
    "translate_tabs_to_spaces": true,
    "trim_automatic_white_space": true,
    "trim_trailing_white_space_on_save": true,
    "use_tab_stops": true,
    "word_separators": "./\\()\"'-:,.;<>~!@#%^&*|+=[]{}`~?"
  4. О плагинах (пакетах) и как их устанавливать. Sublime чем-то похож на сам Drupal. Весь функционал можно наращивать с помощью расширений. Для установки плагинов нажимаем следующую комбинацию клавиш: CMD+SHIFT+P (актуально для Mac OS X, если Вы под Windows или Linux, то просто замените CMD на CTRL). В появившемся списке набираем pi и нажимаем Enter. После этого набираем название пакета (вернее его сокращенное название) и снова Enter для его установки. То есть пакеты можно ставить без мышки Smile
  5. Плагины и их краткое описание

    AdvancedNewFile (сокращение: and)
    Создает новые файлы и директории. Вызывается нажатием CMD+ALT+n . Более подробно здесь

    Auto Semi-Colon (сокращение: asc)
    Этот плагин автоматически перемещает ";" за границу последних скобок, если нажали ";" внутри одной или более пар скобок. Более подробно здесь

    Bracket Highlighter (сокращение: bhi)
    Делает подсветку парных скобок [], (), {}, "", '', , а также многих других. Более подробно здесь

    DocBlockr (сокращение: db)
    Упрощает написание PHPDoc. Для вызова набираете /** и жмете <>. Более подробно здесь

    Drupal Project Autocomplete (сокращение: dpa)
    Этот плагин делает автокомплит для всех Drupal функций проекта. Более подробно здесь

    Goto Documentation (сокращение: gd)
    Этот плагин дает возможность переходить к документации относящейся к текущему слову. Он поддерживает не только php, но и много других языков. Для вызова можете воспользоваться комбинацией cmd-shift-p, после чего выберите "Goto Documentation". Конечно же проще настроить комбинацию клавиш для вызова данного плагина. Для этого добавляем в "Key Bindings - User" (куда мы попадаем через меню preferences) следующую строчку:
    { "keys": ["super+shift+h"], "command": "goto_documentation" }
    Более подробно здесь

    Goto Drupal API (сокращение: gda)
    Аналогично предыдущему, этот плагин дает возможность переходить к документации, только в данном случае - это документация по Drupal API. Как и в случае с предыдущим плагином, намного проще настроить комбинацию клавиш для вызова данного плагина. Для этого добавляем в "Key Bindings - User" (куда мы попадаем через меню preferences) следующую строчку:
    { "keys": ["super+shift+a"], "command": "goto_drupalapi" }
    Более подробно здесь

    Git (сокращение: git)
    Интеграция с git. Более подробно здесь

    MacTerminal (сокращение: mt)
    Работа с терминалом. По ctrl+command+t открывает терминал в папке, где находиться текущий редактируемый файл. здесь

    SASS (сокращение: sass)
    Поддержка SASS в Sublime. здесь

    SideBarEnhancements (сокращение: sbe)
    Улучшает возможности сайдбара в Sublime. здесь

    Sublimerge (сокращение: sumge)
    Плагин позволяет сравнивать и делать merge файлов прямо в редакторе Sublime Text 2. здесь

    SublimeLinter (сокращение: suli)
    Подсветка потенциально возможных ошибок.. здесь

Часто используемые горячие клавиши

Выделение

⌘ + D – Выделить слово
⌘ + L – Выделить строку
⌘ + Shift + A – Выделить содержимое тага
Control + Shift + M – Выделить контент между скобками

Просмотр

⌘ + K, ⌘ + B – Показать/скрыть сайдбар
Shift + ⌘ + F - Полноэкранный режим
Control + Shift + ⌘ + F - Дистракционный режим

Редактирование

⌘ + Shift + D — Клонировать строку
⌘ + Shift + K - Удалить строку
⌘ + ] - Увеличить отступ, ⌘ + [ - Уменьшить отступ
⌘ + J – Соединить строки
⌘ + Option + [ - Свернуть блок
⌘ + Option + ] - Развернуть блок
⌘ + K, ⌘ + T - Свернуть атрибуты тагов
⌘ + K, ⌘ + J - Развернуть атрибуты тагов

Утилиты

Shift + ⌘ + P – Sublime коммандная панель
Control + ` – Консоль
⌘ + Option + P - Показать тип исходников

Навигация

⌘ + P – Показать быстрое переключение между файлами
⌘ + P, # – Перейти к слову
⌘ + R – Перейти к функции или классу
Control + G = ⌘ + P, : - Перейти к строке
⌘ + F2 – Добавить закладку. Для перехода между закладками используется F2
⌘ + I - Инкрементальный поиск
⌘ + G - Следующий результат поиска
⌘ + Shift + G - Предыдущий результат поиска

Настройки

⌘ + , – Settings - User

Выделение столбцов (OS X)

Левая кнопка мыши + Option
Или: Средняя кнопка мыши
Добавить к выделению: ⌘
Убрать из выделения: ⌘ + Shift
Используя клавиатуру
Ctrl + Shift + Up
Ctrl + Shift + Down

Оригинал статьи на stillfinder.net

Комментарии

Скажите пожалуйста, как ведет себя подсветка кода внутри разных файлов ? Не возникает ли проблем с перемешанным кодом ?

Хотелось бы сразу получить готовую сборку, готовы ли вы выложить ее ?

19 декабря 2013 в 14:08

Вроде не замечал проблем с подсветкой, с перемешанным кодом. Сборку выложить не могу, но думаю можно сделать скрипт, который установит перечисленные плагины. Только не уверен есть ли в этом смысл, ведь скорее всего, каждый захочет настроить все под себя и использовать не все из предложенного.

19 декабря 2013 в 15:45

По поводу третьей версии - еще не занимался изучением данного вопроса. Когда будет время заняться этим - обязательно поделюсь своими результатами.

19 декабря 2013 в 15:47

А в чем проблема со сборкой ?
Настройка под себя хороша лишь в момент принятия решения остаться на новом редакторе.
Я бы с радостью опробовал целую сборку на виртуальной машине.

Тем более, что уже более двух лет пытаюсь перебраться на linux desktop. Мультиплатформенный редактор был бы дополнительным толчком.

19 декабря 2013 в 16:25

"stillfinder" wrote:
Только не уверен есть ли в этом смысл, ведь скорее всего, каждый захочет настроить все под себя и использовать не все из предложенного.

А я уверен, что такие как я(ленивые создания) очень оценят сборку.
Мне в лом настраивать чтолибо и люблю программы которые работают из коробки так как мне надо.
Вообще в этом плане саблайм вообще никудышный, настройки хоть и разнообразные и их много, но требуется определенный скил. А мне вот реально не хочется изучать редактор... глупо это.
А так я бы скачал сборочку, потестил, посмотрел, может что отключил или что добавил. Но это уже заняло бы у меня 10 минут, а не несколько часов траханья. Тем более, не все дополнения работают.

19 декабря 2013 в 16:37

Поддержу iHappy, только это скорее не лень, а просто нежелание тратить время на траходействия. Время - очень ограниченный ресурс, его реально жалко. И тратить несколько часов чтобы понять, что только предварительная настройка под свои достаточно средние вкусы уже отняла полдня... Да нафиг надо.

19 декабря 2013 в 19:28

"marazmus" wrote:
только это скорее не лень, а просто нежелание тратить время на траходействия.

Это лень, как лень не называй, это лень Smile

19 декабря 2013 в 19:52

Уже 3 потенциальных пользователя есть у сборки.
И это только те, кто видел тему со сборкой.

Вы бы подобрали домен, состряпали статью и таскали бы трафик со всех ресурсов.

Сборки везде полезны, кто-то ОС собирает, кто-то ПО вертит.

Главное у вас есть опыт настройки.
Легче одному человеку собрать, а остальные экономят время и сидят у вас в блоге, обсуждают творение Smile

19 декабря 2013 в 20:04

foreach wrote:
Уже 3 потенциальных пользователя есть у сборки.
И это только те, кто видел тему со сборкой.

Вы бы подобрали домен, состряпали статью и таскали бы трафик со всех ресурсов.

Сборки везде полезны, кто-то ОС собирает, кто-то ПО вертит.

Главное у вас есть опыт настройки.
Легче одному человеку собрать, а остальные экономят время и сидят у вас в блоге, обсуждают творение =)

Домен уже есть: http://stillfinder.net. Я там Smile

19 декабря 2013 в 22:16

"iHappy" wrote:
Это лень, как лень не называй, это лень :)

"ненене девид блейн!" Smile

В моем случае это бесполезная трата времени в "поисках серебряной пули". Ну и три часа рабочего времени выкинуть на заточку инструмента, который еще и не факт что пригодится... А три часа личного времени лучше на семью потратить ну или на сон хотя бы Smile

19 декабря 2013 в 21:18

"marazmus" wrote:
В моем случае это бесполезная трата времени в "поисках серебряной пули". Ну и три часа рабочего времени выкинуть на заточку инструмента, который еще и не факт что пригодится... А три часа личного времени лучше на семью потратить ну или на сон хотя бы :)

То есть, ты не хочешь выделить три часа перед сном... или вместо сна на это)
Говорю же, лентяй Wink

19 декабря 2013 в 21:30

Не думал, что будет столько желающих, но если такое дело, то сделаю сборку. Только нужно будет 3 сборки делать - под разные оси. И еще я не уверен насколько это легально. Кто нибудь может проконсультировать меня по этому вопросу законности данного намерения?

19 декабря 2013 в 22:13

"stillfinder" wrote:
Не думал, что будет столько желающих, но если такое дело, то сделаю сборку. Только нужно будет 3 сборки делать - под разные оси. И еще я не уверен насколько это легально. Кто нибудь может проконсультировать меня по этому вопросу законности данного намерения?

насчет правомерности я незнаю. Но я уже думал над этим. Можно сделать не репак, а ... как это назвать не знаю.
В общем, перед использованием сборки, надо сам саблайм скачать и положить рядом с установщиком сборки, который сам бы в силент режиме ставил бы саблайм, а потом ставил настройки.
А можно, сделать сборку, в которой нет самого саблайма, а он только несет модули и настройки, типа применил и все ок.

А насчет трех, я думаю два надо, в макось не нуно. имхо

19 декабря 2013 в 22:21

Выдает ошибку.
А сейчас вообще перестал запускаться. Даже скриншот не могу сделать(
Рекомендую все таки делать на третью версию сразу. Вторая может скоро пропасть.

20 декабря 2013 в 15:12

iHappy wrote:
Выдает ошибку.
А сейчас вообще перестал запускаться. Даже скриншот не могу сделать(
Рекомендую все таки делать на третью версию сразу. Вторая может скоро пропасть.

Ок, постараюсь сделать для 3 версии.

20 декабря 2013 в 16:44

foreach wrote:
"stillfinder" wrote:
3.
но проверяем, что нету комы в последней строке) :

Не все поймут, исправьте.

:) Спасибо, поправил.

3 января 2014 в 21:54

Lotar wrote:
А в чем его выгодное отличие для друпал разработчика, от блокнот++ или phpstorm?

Это скорее вопрос личных предпочтений. Я не очень в курсе, а в notepad++ есть сниппеты для хуков и тд?

3 января 2014 в 21:55

Windows. Копируете с заменой скаченный файл в папку C:\Users\{username}\Dropbox\Sublime\Packages\User C:\Users\{username}\AppData\Roaming\Sublime Text 2\Installed Packages(Вместо {username} вставляете имя Вашего пользователя)

При чем тут DropBox?

31 декабря 2013 в 1:20

Artu wrote:
Windows. Копируете с заменой скаченный файл в папку C:\Users\{username}\Dropbox\Sublime\Packages\User C:\Users\{username}\AppData\Roaming\Sublime Text 2\Installed Packages(Вместо {username} вставляете имя Вашего пользователя)

При чем тут DropBox?

Спасибо за замечание. Опечатка. Очепятку поправлю.

3 января 2014 в 21:58

"Lotar" wrote:
А в чем его выгодное отличие для друпал разработчика, от блокнот++ или phpstorm?

Sublime Text быстрей работает. Имеет хорошие дополнения. Красивый=).
Для вим*пользователей есть управление в стиле вим.
и сравнивать похапешторм с саблаймом не коректно, шторм как бы ИДЕ, а саблайм редактор.

3 января 2014 в 20:29