time

Ода о Sublime Text

Sublime Text удобный текстовый редактор, который занял нишу между большими IDE со всем готовым и текстовыми редакторами "собери сам" (vim, emacs, etc). Для меня vim основной текстовый редактор с уже устоявщимся конфигом, набором плагинов и привычек, а вот Sublime'ом пользуюсь для параллельных работ.

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

Начнем с установки. Я пользуюсь dev-билдом который можно установить вручную отсюдова или с помощью пакетных менеджеров.

Под Ubuntu

sudo add-apt-repository ppa:webupd8team/sublime-text-3
sudo apt-get update
sudo apt-get install sublime-text-installer

Под Arch Linux

yaourt -S sublime-text-dev

Настройки

Все настройки хранятся в JSON. Мои настройки такие (Preferences - Settings - User):

{
    "auto_complete": true,
    "color_scheme": "Packages/Color Scheme - Default/Solarized (Light).tmTheme",
    "detect_slow_plugins": false,
    "ensure_newline_at_eof_on_save": true,
    "file_exclude_patterns":
    [
        "hgignore",
        ".gitignore"
    ],
    "folder_exclude_patterns":
    [
        ".hg",
        ".git"
    ],
    "font_face": "Courier New",
    "font_size": 13.0,
    "highlight_line": true,
    "highlight_modified_tabs": true,
    "ignored_packages":
    [
    ],
    "indent_guide_options":
    [
        "draw_active",
        "draw_normal"
    ],
    "indent_to_bracket": true,
    "soda_folder_icons": true,
    "sublimelinter": false,
    "tab_size": 4,
    "theme": "Soda Light.sublime-theme",
    "translate_tabs_to_spaces": true,
    "trim_trailing_white_space_on_save": true,
    "overlay_scroll_bars": "enabled",
    "line_padding_bottom": 1,
    "line_padding_top": 1,
}

Список всех настроек можно посмотреть тут.

И сочетания клавиш (Preferences - Key Bindings - User)

[
    { "keys": ["f4"], "command": "toggle_bookmark" },
    { "keys": ["f5"], "command": "next_bookmark" },
    { "keys": ["f6"], "command": "prev_bookmark" },
    { "keys": ["f7"], "command": "open_model_view" },
    { "keys": ["f8"], "command": "open_template" },
    { "keys": ["f9"], "command": "jump_back" },
    { "keys": ["f10"], "command": "jump_forward" },
    { "keys": ["alt+shift+z"], "command": "insert_snippet", "args": {"contents": "{% ${0:$SELECTION} %}"} },
    { "keys": ["alt+shift+x"], "command": "insert_snippet", "args": {"contents": "{{ ${0:$SELECTION} }}"} },
    { "keys": ["ctrl+l"], "command": "python_goto_definition" },
    { "keys": ["ctrl+j"], "command": "join_lines" },
    { "keys": ["ctrl+d"], "command": "duplicate_line" },
    { "keys": ["ctrl+y"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Line.sublime-macro"} },
    { "keys": ["ctrl+alt+n"], "command": "advanced_new_file"},
    {
        "keys": ["ctrl+'"],
        "command": "bh_key",
        "args":
        {
            "lines" : true,
            "plugin":
            {
                "type": ["__all__"],
                "command": "bh_modules.bracketselect"
            }
        }
    }
]

Горячие клавиши

Наиболее часто используемые сочетания клавиш

  • ctrl + p - поиск файлов;
  • ctrl + r - поиск по именам функций, структур;
  • ctrl + ; - поиск по переменным;
  • ctrl + shift + p - меню с набором всех команд Sublime Text с возможностью поиска;
  • ctrl + shift + [ - свернуть (fold) текущий блок;
  • ctrl + shift + ] - развернуть (unfold) текущий блок;
  • shift + правая кнопки мыши - вертикальное выделение;
  • ctrl + левая клавиша - множественное выделение и правка;
  • ctrl + x - удалить линию;
  • ctrl + l - выделить линию;
  • ctrl + d - выделить слово;
  • ctrl + m - перемещение между скобками;
  • ctrl + shift + m - выделение текста внутри скобок;
  • alt + shift + 2 - разбить окно на две части;
  • alt + shift + 1 - вернуть вид к одному окну;
  • ctrl + [NUM] - переключиться на окно с номером NUM (1-4);
  • ctrl + shift + [NUM] - переместить файл в окно NUM (1-4);
  • alt + shift + w – обернуть выбранный текст в тег;
Sublime Text

Плагины

Посмотреть список доступных плагинов можно на wbond.net.

Для управления плагинами из под редактора понадобиться Package Control. Для этого нажимаем Ctrl + ` и в открывшуюся консоль вводим:

import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())

Нажимаем ctrl + shift + p, набираем install и получаем список плагинов из внутреннего репозитария Sublime Text. Используемые плагины:

  • AngularJS - разные расширения для работы с AngularJS
  • HTML5 - подборка нововведений в HTML 5 для Sublime Text;
  • jQuery - подборка снипетов jQuery для Sublime Text;
  • Tag - удобные дополнения для работы с XML;
  • Placeholder - шаблоны HTML и контента (lorem ipsum);
  • Emmet - обновленный Zen Coding, документация, список команд, пример использования;
  • SideBarEnhancements - пачка дополнительных операций над файлами в sidebar;
  • AllAutocomplete - автодополнение слов из всех вкладок в текущем окне;
  • AdvancedNewFile - быстрое создание файлов, вызов по Super+Alt+N;
  • BracketHighlighter - монстр по работе с скобками и тегами;
  • Anaconda - годный lint-чекер и автодополнение для Python
  • Djaneiro - плагин добавляет подсветку для шаблонов Django и пачку снипетов;
  • PdbSublimeTextSupport - интеграция pdb и Sublime Text;
  • SublimeREPL - запуск интерпретатора python и других языков в окне редактора;
  • Soda - светлая и темная тема оформления Soda;
  • Tomorrow Night - тема оформления Tomorrow Night;
  • Solarized - светлая и темная тема оформления Solarized;

Настройки отдельно для проекта

Мы можем установить настройки отдельно для проекта, для этого откройте Project - Edit Project и введите настройки под проект, например

{
    "folders": [
        {
           "path": "/path/to/folder1"
        },
        {
            "path": "/path/to/folder2"
        }
    ],
    "settings": {
        "python_interpreter": "/path/to/some/virtualenv/bin/python"
    }
}

Дополнительное чтиво

blog comments powered by Disqus