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

Многим людям очень нравится редактор кода 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 Text 2 с командной строки (актуально для mac os x) запускаем терминал и выполняем следующую команду:
    sudo ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /usr/bin/subl
    После этого можно будет запускать Sublime командой subl из терминала, или использовать subl filename/dirname, например:

    subl filename.php
    subl dirname
    subl .
  5. Запуск php кода. Бывает ситуация, когда нужно запустить на выполнение небольшой скрипт. В Sublime Text это делается достаточно просто. Идем в Tools -> Build System -> New build system и вводим туда следующее:

    {
        "cmd": ["/usr/bin/php", "-l", "$file"], <- Couldn't just use "php" ?
        "file_regex": "^Parse error: .* in (.*?) on line ([0-9]*)",
        "selector": "source.php"
    }

    После этого в Tools -> Build System -> php. Теперь мы можем выполнить наш php код с помощью комбинации клавиш ⌘ + B

  6. О плагинах (пакетах) и как их устанавливать. Sublime чем-то похож на сам Drupal. Весь функционал можно наращивать с помощью расширений. Для установки плагинов нажимаем следующую комбинацию клавиш: CMD+SHIFT+P (актуально для Mac OS X, если Вы под Windows или Linux, то просто замените CMD на CTRL). В появившемся списке набираем pi и нажимаем Enter. После этого набираем название пакета (вернее его сокращенное название) и снова Enter для его установки. То есть пакеты можно ставить без мышки :)
  7. Плагины и их краткое описание

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

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

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

    phpTidy
    Делает форматирование php кода. Для переформатирования кода используйте комбинацию ctrl+alt+t . Более подробно здесь

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

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

    Drupal Sublime Text
    Этот плагин добавляет сниппеты для Drupal функций. Просто начинаете ввод со слова drupal, и Вам будет предложен список возможных сниппетов. Более подробно здесь

    Drupal snippets for Sublime Text
    Этот плагин добавляет сниппеты для хуков Drupal. Для использования введите hook_HOOKNAME или h_HOOKNAME. Более подробно здесь

    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

Импорт настроек

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

  1. Скачиваете Sublime Text 2. Устанавливаете. Закрываете.
  2. Скачиваете этот файл
  3. Дальше в зависимости от OS

    • Mac OS X. Копируете с заменой скаченный файл в папку /Users/{username}/Library/Application Support/Sublime Text 2/Installed Packages. (Вместо {username} вставляете имя Вашего пользователя)
    • Windows. Копируете с заменой скаченный файл в папку C:\Users\{username}\Dropbox\Sublime\Packages\User C:\Users\{username}\AppData\Roaming\Sublime Text 2\Installed Packages(Вместо {username} вставляете имя Вашего пользователя)
    • Linux. По поводу Линукса пока не уверен, но структура папок примерно как описанно выше
  4. Запускаем Sublime Text 2. Пробуем.
  5. Пишем в комментариях о результате.

Полезные ссылки

Краткая справка по командам
Sublime для Drupal разработчика
http://opensourcehacker.com/2013/05/09/exporting-and-sharing-sublime-text-configuration/