Макросы в NetBeans

Не так давно я заметил наличие макросов в NetBeans. Раньше я иногда пользовался макросами в PSPad и мне это очень помогало.

Как ни странно, найти подробной документации я не смог. Может плохо искал? Единственное, что попалось — небольшой туториал «Stop Typing Your Source Code» ещё для NetBeans 4.0.

Самое интересное — я нигде не обнаружил списка макрокоманд… пришлось покопать исходный код IDE.

Что такое макрос

Макрос в данном контексте — записанная последовательность действий (ввод текста, перемещение курсора и др.), которую можно выполнять автоматически.

Как создать макрос

В главном меню выбираем:

Tools → Options → Editor → Macros → New

В открывшееся окно вписываем последовательность макрокоманд.

Через «Set shortcut…» можно назначить макросу сочетание клавиш.

Полезные макрокоманды

Команда Результат
Курсор
caret-down, caret-up, caret-forward, caret-backward ↓, ↑, →, ←
caret-begin-line, caret-end-line В начало/конец строки
page-up, page-down Страницу вверх/вниз
caret-begin, caret-end В начало/конец документа
caret-begin-word, caret-end-word К началу/концу слова
adjust-caret-bottom, adjust-caret-top, adjust-caret-center Вниз/вверх/в центр экрана
first-non-white, last-non-white К первому/последнему пробелу или разделителю
caret-next-word, caret-previous-word К следующему/предыдущему слову
caret-begin-line, caret-line-first-column В начало строки
Выделение
selection-begin-line, selection-end-line Выделить до начала/конца строки
selection-up, selection-down, selection-forward, selection-backward Выделить символ ↑, ↓, ←, →
select-line Выдеить строку
select-word Выделить слово
select-all Выделить всё
selection-match-brace Выделить всё по парную скобку
select-identifier Выделить идентификатор (переменная, метод)
selection-begin, selection-end Выделить от курсора до начала/конца документа
selection-begin-word, selection-end-word Выделить от курсора до начала/конца текущего слова
selection-previous-word, selection-next-word Выделить предыдущее/следующее слово
selection-page-up, selection-page-down Выделить страницу вверх/вниз
selection-last-non-white, selection-first-non-white Выделить по первый/последний не пробел и не разделитель
selection-line-first-column Выделить до начала строки
Буфер обмена
cut-to-clipboard Вырезать
copy-to-clipboard Копировать
paste-from-clipboard Вставить
paste-formated Вставить с форматированием. Форматирование частичное
cut-to-line-begin, cut-to-line-end Вырезать до начала/конца строки
Текст
"text" Ввести заданную строку
insert-break Вставить перенос строки
insert-tab Вставить TAB
delete-next, delete-previous DEL/BACKSPACE
comment, uncomment Закомментировать/раскомментировать строку
format, reindent-line Форматировать / выставить TAB-ы
insert-date-time Вставить дату и время
remove-selection Удалить выделенное
switch-case Сменить регистр
to-lower-case, to-upper-case К нижнему/верхнему регистру
split-line Разделить строку на две в текущей позиции курсора
remove-trailing-spaces Убить все пробелы после значимого конца строки во всём документе
remove-line Удалить строку
start-new-line Начать с новой строки
remove-word-previous, remove-word-next Удалить предыдущее/следующее слово
shift-line-left, shift-line-right Аналог SHIFT+TAB/TAB
toggle-typing-mode Переключить режим вставки/перезаписи текста
toggle-case-identifier-begin Первая буква выделения большая/маленькая
remove-tab Удалить табуляцию слева
remove-line-begin Удалить все символы строки слева от курсора
move-selection-else-line-up, move-selection-else-line-down Передвинуть строку вверх/вниз поменяв с той, на которую двигаем
copy-selection-else-line-up, copy-selection-else-line-down Продублировать текущую строку и сдвинуться вверх/вниз
Всякое
find-selection Найти выделенное
find-next, find-previous Следующее/предыдущее совпадение при поиске
adjust-window-bottom, adjust-window-top, adjust-window-center Прокрутить окно, чтобы курсор был снизу/сверху/по середине
match-brace Перейти от одной парной скобки к другой
set-read-only, set-writable Поставить/снять документу флаг «толко чтение»
undo Отмена
redo Отмена отмены :)

Примеры макросов

Обрамить выделенный текст в <li>

Как вы догадались, можно обрамлять выделение каким угодно текстом. При вёрстке очень помогает.

cut-to-clipboard "<li>" paste-from-clipboard "</li>"

Оставить пометку о том, что код надо дописать

start-new-line "//TODO: посмотреть код!" select-line move-selection-else-line-up

Бэкап в комментарии

Сохраняет текущую строку в комментарии под ней.

select-line copy-selection-else-line-up caret-begin-line "//" caret-up caret-begin-line