Tuesday, July 17, 2012

Запуск терминала из под Sublime-Text-2


Наверное многие из вас слышали о таком замечательном текстовом редакторе как Sublime Text. Не буду долго и мучительно рассказывать о том, о чем уже много раз сказано.
  1. http://dimox.name/sublime-text-editor-for-code/
  2. http://www.trymbill.is/9-reasons-why-sublime-text-2-should-be-your-next-ide/
  3. http://1p1e1.tumblr.com/post/14262857223/9-reasons-you-must-install-sublime-text-2-code-like-a
Особенно мне понравился этот пост http://net.tutsplus.com/tutorials/tools-and-tips/sublime-text-2-tips-and-tricks/

По теме

Сегодня с утречка пришла в голову мысль, что неплохо было бы запускать terminal прямо из Sublime text. Я сразу же погуглил, и нарвался на этот пост, который описывал плгин под названием Terminal. Terminal можно установить прямо из редактора с помощью Package Control плагина.
Вроде неплохо, даже как-то слишком просто. Теперь по шорткату Alt+Shift+Tзапускается terminal в папке текущего файла, а на Ctrl+Alt+Shift+T в корне проекта.
Однако мне хочется большего. Так как я пишу в основном на Django и использую Virtualenv было бы здорово уметь запускать терминал в корне проекта, сразу с нужной средой.
В каждом проекте у меня уже давно есть файлик activate, который активирует нужную среду для текущего проекта. Кстати, на гитхабе можно посмотреть deployment структуру, которую я использую уже продолжительное время.
#!/bin/bash  xpwd=$( readlink -f "$( dirname "$BASH_SOURCE" )" )  . $xpwd/../../../bin/startwork . $xpwd/../../../envs/djangoejudge/bin/activate 
Все, что нужно сделать это найти способ заставить Terminal плагин запускать кансоль с параметрами. И ответ мы находим, конечно же, в документацииплгина. Добавляем настройку в Preferences > Key Bindings - User.
    { "keys": ["alt+shift+t"], "command": "open_terminal_project_folder",         "args": {             "parameters": ["-e", "bash --rcfile \"./scripts/activate\""]         }     } 
Идем дальше. Теперь хочется, чтобы можно было запустить django shell сразу одним шорткатом. Пришлось хорошенько погуглить, чтобы научиться изменять не только среду, но и выполнять комманду в терминале. И вот на мой взгляд самый простой вариант.
Потребуется создать еще один файл (назовем его django_shell), который непосредственно будет запускать shell.
#!/bin/bash source ./scripts/activate python manage.py shell 
И добавляем такие настройки в Sublime Text.
    { "keys": ["alt+shift+s"], "command": "open_terminal_project_folder",         "args": {             "parameters": ["-e", "bash --init-file \"./scripts/django_shell\""]         }     } 
Вот теперь я вроде удовлетворен. Утро удалось, а значит и день удастся. Всем удачного дня!

No comments:

Post a Comment