Sublime text 3 format text: sublimetext3 — How do you format code in Sublime Text editor 3

Использование Sublime Text 3 — Expertus metuit

Когда-то я писал о личном опыте использвания Sublime Text 2, а после выхода Sublime Text 3 решил начать новую статью, ориентированную именно на версию 3 с небольшим акцентом на миграцию с 2 на 3.

Sublime Text — это профессиональный программерский текстовый редактор. Он завоевал очень большую популярность благодаря проработанности интерфейса, кроссплатформенности, удобной и простой расширяемости плагинами. Мои впечатления со времён написания первой статьи не особо изменились, поэтому я второй раз их переписывать не буду.

В самом начале нужно поставить «главное расширение» Package Control, потом через него можно ставить другие, включать/отключать и так далее. Процесс установки описан здесь.

Ниже список расширений, которые не входят в начальную поставку, но весьма полезны (они все ставятся через Package Control).

SyncedSideBar
Синхронизует текущий открытый файл с деревом файлов в панели слева.
Sublime Linter
Проверка синтаксиса в реальном времени, подсвечивает места в коде, содержашие (потенциальные) ошибки и прочие «плохие» места. Использует внешние программы для собственно проверки, например, для XML использует xmllint, для Java — javac -Xlint.
CommentsAwareEnter
«Умный» Enter внутри комментария, позволяет писать, например, многострочные комментарии автоматически, просто нажимая на Enter. Работает с комментариями типа //, но не с /* */.
DocBlockr
Упрощает работу с комментариями, автоматически расширяет /** */-блоки, например.
All Autocomplete
Включает поиск для автодополнения по всем открытым в редакторе файлам, а не только в текущем. Я для себя этот проект форкнул и немного подредактировал, чтобы исправить несколько надоедливых багов (https://github.com/sigsergv/SublimeAllAutocomplete).

А вот эти расширения я пробовал, но отказался от них из-за большого количества багов.

Sublime CodeIntel
Более удобная работа с кодом: переход по символам (Alt+Click), подсказки с аргументами функций, более качественное автодополнение. Заявлена поддержка вот этого зоопарка: PHP, Python, RHTML, JavaScript, Smarty, Mason, Node.js, XBL, Tcl, HTML, HTML5, TemplateToolkit, XUL, Django, Perl, Ruby, Python3

В Sublime Text очень активно используется клавиатура, очень много хоткеев на все случаи, но они часто отличаются от хоткеев из других редакторов. Посмотреть текущие можно через меню Preferences → Key Bindings — Default, откроется таб конфигом текущих системных хоткеев. Можно эти хоткеи менять на свои, но лучше это делать через пользовательский конфиг хоткеев, он открывается из меню

Preferences → Key Bindings — User. Дальше в официальной документации читайте.

Ниже идёт конфиг, который я использую, в нём частично хоткеи из еклипса, частично мои собственные.

// eclipse-like key bindings, for sublime text v.3 (macos)
// author: Sergey Stolyarov <[email protected]>
[
    // disable some hotkeys
    { "keys": ["ctrl+f3"], "command": "unbound" },
    { "keys": ["ctrl+shift+f3"], "command": "unbound" },
    { "keys": ["ctrl+g"], "command": "unbound" },
    { "keys": ["ctrl+q"], "command": "unbound" },
    // find selected text
    { "keys": ["super+k"], "command": "find_under" },
    { "keys": ["super+shift+k"], "command": "find_under_prev" },
    // delete word before cursor
    { "keys": ["super+w"], "command": "delete_word", "args": { "forward": false } },
    // delete line (default ctrl+shift+k)
    { "keys": ["ctrl+d"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Line.sublime-macro"} },
    // auto completion
    { "keys": ["super+p"], "command": "auto_complete" },
    // open files list overlay
    { "keys": ["ctrl+3"], "command": "show_overlay", "args": {"overlay": "goto", "show_files": true} },
    // add line
    { "keys": ["shift+enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line.
sublime-macro"} }, { "keys": ["ctrl+shift+p"], "command": "move_to", "args": {"to": "brackets"} }, { "keys": ["super+shift+p"], "command": "move_to", "args": {"to": "brackets"} }, // jump to line { "keys": ["super+l"], "command": "show_overlay", "args": {"overlay": "goto", "text": ":"} }, { "keys": ["ctrl+l"], "command": "show_overlay", "args": {"overlay": "goto", "text": ":"} }, // use Ctrl+H for searching in files { "keys": ["ctrl+h"], "command": "show_panel", "args": {"panel": "find_in_files"} }, { "keys": ["super+h"], "command": "show_panel", "args": {"panel": "find_in_files"} }, { "keys": ["ctrl+shift+f"], "command": "unbound" }, { "keys": ["super+shift+f"], "command": "unbound" }, // use Ctrl+F both for searching and replacing { "keys": ["ctrl+f"], "command": "show_panel", "args": {"panel": "replace"} }, { "keys": ["super+f"], "command": "show_panel", "args": {"panel": "replace"} }, // expand selection to complete line { "keys": ["super+shift+l"], "command": "expand_selection", "args": {"to": "line"} }, { "keys": ["ctrl+shift+l"], "command": "expand_selection", "args": {"to": "line"} }, // case conversions { "keys": ["alt+up"], "command": "upper_case" }, { "keys": ["alt+down"], "command": "lower_case" }, // close all opened tabs {"keys": ["shift+ctrl+w"], "command": "close_all"}, // open methods lookup { "keys": ["ctrl+r"], "command": "show_overlay", "args": {"overlay": "goto", "text": "@"} }, { "keys": ["f3"], "command": "find_next" } ]

Главные настройки хранятся в файле ~/. &*|+=[]{}`~?", // использовать отступы пробелами по умолчанию "translate_tabs_to_spaces": true, // файлы для игнора в разных списках "file_exclude_patterns": [ "build/*", "*.pyc" ], // включаем перенос по словам "word_wrap": true, // скрываем кнопки закрывания табов, пользуемся нажатием на колесо для этого "show_tab_close_buttons": false, // делаем табы с несохранёнными изменениями более заметными "highlight_modified_tabs": true, // отключаем переключение табов колесом мыши "mouse_wheel_switches_tabs": false, // отключаем плавную прокрутку "scroll_speed": 0, // всегда показывать текующую позицию в минимапе "always_show_minimap_viewport": true, // включаем автоматическую синхронизацию для плагина SyncedSideBar "reveal-on-activate": true, // отключаем «схлапывание» табов "enable_tab_scrolling": false, // включаем показ кодировки в статусбаре "show_encoding": true, // при поиске подставлять выделенный текст в поле поиска "find_selected_text": true, // позволяет прокручивать текст за пределы конца файла "scroll_past_end": true, "ignored_packages": [ "Vintage" ] }

В sublimetext хорошо организована работа с проектами, между ними легко переключаться с сохранением открытых файлов. У каждого проекта есть свои собственные настройки, они хранятся в файле, который можно открыть из меню Project → Edit project, это точно такой же json, как и файл с настройками программы или хоткеев. Главный элемент этого конфига — объект

folders, в нём для каждой папки проекта создаётся отдельный объект, элемент path задаёт путь к папке.

Помимо path там могут находиться и другие элементы, например, name (строкового типа) задаёт отображаемое имя каталога в дереве проекта. Другие полезные элементы — списки file_exclude_patterns и folder_exclude_patterns. Вот простейший пример проектного конфига:

{
    "folders":
    [
        {
            "path": "/home/user/projects/pyrone",
            "file_exclude_patterns": ["*.in", "*.pyc"],
            "folder_exclude_patterns": ["pyrone.egg-info", "storage", "data"]
        }
    ]
}

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

sublimetext2 — Как переформатировать HTML-код с помощью Sublime Text 2?

Спросил

Изменено 1 год, 3 месяца назад

Просмотрено 1,1 млн раз

1373

Новинка! Сохраняйте вопросы или ответы и организуйте свой любимый контент.
Узнать больше.

У меня есть плохо отформатированный код HTML, который я хотел бы переформатировать. Есть ли команда, которая автоматически переформатирует HTML-код в Sublime Text 2, чтобы он выглядел лучше и его было легче читать?

  • html
  • sublimetext2
  • sublimetext
  • отступ
  • переформатировать

3

Для этого не нужны никакие плагины. Просто выберите все линии ( CTRL + A ), а затем в меню выберите «Правка» → «Линия» → «Повторить отступ».

Это будет работать, если ваш файл сохранен с расширением, содержащим HTML, например .html или .php .

Если вы делаете это часто, вам может пригодиться следующее сопоставление клавиш:

 { "клавиши": ["ctrl+shift+r"], "команда": "повторно" , "аргументы": { "single_line": false } }
 

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

26

В Sublime существует около полудюжины способов форматирования HTML. Я протестировал каждый из самых популярных плагинов (полную информацию см. в статье, которую я сделал в своем блоге), но вот краткий обзор некоторых из наиболее популярных вариантов:

Команда Reindent

Плюсы:

  • Поставляется с Sublime, поэтому установка плагина не требуется

Минусы:

  • Не удаляет лишние пустые строки
  • Не удается обработать минимизированный HTML, строки с несколькими открытыми тегами
  • Неправильный формат