Как создать макрос в notepad
Пишутся они веб-мастером под свои нужды, так что для каждого проекта, запросто можно создать набор макросов.
Управление макросами выполняется с панели инструментов редактора.
Давайте смотреть, как всё это делается.
При этом активируется соседняя кнопка "Остановка записи", значит можно писать.
Вот тут, в написании, есть нюансы.
Дело в том, что редактор записывает абсолютно все ваши действия по порядку.
То есть, если Вы сначала напишите скобки, а потом в эти скобки вставите содержание, то макрос не получится.
Редактор так и сохранит: сперва скобки, а потом после них то что должно быть внутри.
Так что запись надо делать последовательно и желательно без ошибок, так как их исправление в режиме записи, тоже может привести к неточностям.
Или вставляем уже готовый и скопированный кусок кода.
Вот с копированием и вставкой никаких проблем, если после вставки не делать лишних движений.
А делать надо вот что.
Правильно написали, или где-то скопировали, вставили и нажимаем чёрную кнопку "Остановка записи", при этом активируется красная.
Затем выбираем из меня "Макросы" и далее "Сохранить запись в макрос".
Появится диалоговое окно, в котором нужно будет записать имя макроса, по которому его при необходимомти можно будет вызвать.
Пишем, можно по русски, и нажимаем ОК.
Всё, шаблон "Каркас страницы" готов. Проверяем. Открываем новый файл
Выбираем меню Макросы и в нём уже есть наш шаблон.
Остаётся кликнуть по нему, чтоб шаблон появился в документе.
Закрываем проверочный файл без сохранения и продолжаем работу в том файле который открыли сначала.
Точно так же можно наделать множество других шаблонов, и вставлять их в код когда нужно.
Если вдруг шаблон получился коряво, то в меню Макросы есть вкладка Изменить/Удалить.
Пройдя по ней можно изменить название шаблона или удалить его, для того чтоб написать по новой, так как нужно.
Отредактировать шаблон вручную по силам только уверенному программисту, так как сохраняется он в формате xml.
В следующей статье узнаем ещё об одном модуле Notepad++, ещё более облегчающем работу с кодом.
Идея приспособить макрос для примитивного программирования появлялась у меня несколько раз. То есть, сделать так, чтобы макрос при запуске "читал" строчку с операцией, интерпретировал ее, что-то делал с данными и переходил к следующей строчке.
На всякий случай напомню: макрос в Notepad++ и в других текстовых редакторах – записанная последовательность действий пользователя над текстом. Макрос можно запускать многократно для быстрого выполнения рутинных операций. Макрос "запоминает" нажатия клавиш и может воспроизводить, например, такие действия:
- Ввод и удаление символов
- Перемещение курсора
- Копирование и вставка
- Поиск в тексте
Сначала это казалось невозможным, ведь макрос слишком "глуп" и прямолинеен:
- Нельзя менять последовательность действий во время выполнения макроса.
- Искомая строка фиксирована — никакой вставки из буфера обмена.
- Нельзя выполнить действие переменное количество раз, а также пропустить действие в зависимости от какого-либо условия.
Для второго пункта нашлось решение – Search -> Find (Volatile) Next (Ctrl+Alt+F3) . Эта операция ищет выделенное. Благодаря ей, можно совершать динамический переход, в зависимости от выделения. А вот первый пункт казалось невозможно обойти. Получалось, что никак не выполнить такой код:
Макрос не сможет определить, что в первой строке нужно выполнить присваивание, а во второй совершить условный переход. А это значит, что нужно делать все в одной операции. Как-то так:
Чтобы перейти по метке, нужно использовать поиск выделенного. Но появилась такая проблема – как реализовать условный переход. Очевидно, нужно переходить всегда, но по изменяющимся меткам:
Значение переменной подставляется вместо [a] , и получается label1, label2 или label_hello. Так как подстановка должна осуществляться всегда, то для безусловного перехода появилась служебная переменная [] с пустым значением:
Из-за того что пустое значение нельзя скопировать, пришлось во всех хранилищах переменных добавлять пробел после значения и удалять после подстановки. Неудобно, но не знаю, как сделать лучше. В конечном итоге, строка с операций приобрела следующий вид:
Где w – \w* в регулярном выражении, т. е. состоящее из буквенных и цифровых символов и знаков подчёркивания. Макрос 4 раза осуществляет подстановку переменных, сохраняет значение переменнной и совершает переход.
Принцип работы макроса
Рассмотрим простой пример.
Считаем, что курсор в начале первой строки. Регуляркой \w*\[\w*\]\w* ищется и выделяется первое вхождение, у нас это b[index] . Оно копируется и вставляется в конец строки после добавления >>> :
После \[\w*\] добавляется двоеточие, и регуляркой выделяется [index]: . Далее совершается поиск следующего такого вхождения. Если все корректно, то это место со значением переменной. Значение выделяется и копируется. Производится возврат путем поиска >>> . Регуляркой находится [index]: . Вместо этого выражения вставляется значение переменной. Все выражения "оборачивается" в квадратные скобки и к нему добавляется двоеточие для дальнейшего поиска получившегося имени переменной:
Дальше аналогично, но для выражения в правой части равенства осуществляется двойная подстановка.
Запись значения переменной по тому же принципу. И, наконец, осуществляется подстановка для имени метки, и происходит переход по ней.
Приходится отмечать маркером >>> метку перехода, чтобы удалить "мусор" в конце строки.
Примеры
Hello, world!
Выполнение макроса зацикливается на первой строчке.
Обмен значений (swap)
В начале и после трех запусков макроса:
Вызов подпрограммы
Тот же swap, только вынесенный в отдельную подпрограмму. Конструкция [[swap_var0]] позволяет получить значение переменной, имя которой находится в swap_var0.
Одноразрядный десятичный инкремент
Трехразрядный десятичный инкремент
При инкрементации для переноса в старший разряд требуется отслеживать переполнение. Поэтому в подпрограмму инкрементации добавлен второй overflow-выход. Да, метки можно разместить в ряд.
Пузырьковая сортировка
И размер массива, и его возможные значения ограничены от 0 до 9. Работает долго, но сортирует. Можно запустить макрос многократно и задать 2000 итераций, тогда выполнение займет порядка минуты. Первоначальная реализация сравнения была очень медленной – каждое число декрементировалось до тех пор, пока одно из них не достигнет 0. Сейчас она некрасивая, но относительно быстрая.
Установка
Если вам вдруг захотелось попробовать, то в элемент <Macros> файла %APPDATA%/Notepad++/shortcuts.xml нужно вставить:
Запуск макроса осуществляется нажатием Ctrl+Shift+Alt+E .
Заключение
Была мысль создать стек, чтобы отойти от глобальных переменных. Тогда бы появилась возможность реализации рекурсии, например. Но не вижу особого смысла, ведь тут самым интересным было исследовать возможность такого программирования. И вы не представляете, как я был рад, когда заработали первые простые примеры.
В программе Notepad ++ имеется множество возможностей для программирования и одной из них являются макросы, которые можно записывать, а потом использовать по назначению. Ниже я расскажу вам о том, как правильно записать и использовать макросы в Notepad ++.
Понятие и процесс
Макрос — это совокупность всех действий, совершенных пользователем во время работы в программе, которые записываются, а в последствии сохраняются этой программой. Проще говоря, когда в обыденной жизни вы совершаете одни и те же действия, как было бы здорово, если можно было записать их и больше не повторять. Впоследствии полученный набор манипуляций возможно привести в работу всего лишь однократным нажатием клавиши мыши, либо, используя клавиши быстрого доступа.
Запись происходит таким образом, что все манипуляции, совершенные ранее, будто кто-то взял и записал на видеозапись. Но вместо видеопленки в программном обеспечении используется код программы. Иначе говоря, это язык программирования, который основывается на принципе описания действий, выполненных пользователем в программе. Язык программы бывает различным, более того он в большей степени будет обуславливаться выбранной программой. Безусловно обычному пользователю совершенно необязательно знать на каком языке программирования закодированы действия.
А теперь о том, как происходит запись и использование макросов в Нотепад++. Как и в другом программном обеспечении, данный процесс значительно облегчает работу. Например, при создании кода часто появляются повторяющиеся части. Кстати, такие части кода определяются как сниппеты. Именно их постоянно требуется прописывать заново вручную. Чтобы процесс работы происходил ещё быстрее и как можно проще, следует записать повторяющиеся части в виде последовательности действий. А дальше использовать в тексте, с помощью клавиш быстрого доступа.
Навигация макросов
Во-первых, следует изучить кнопки, которые будут регулировать работу макросов.
Обратите внимание! На панели инструментов программы Нотепад++, справа в одном ряду находятся пять кнопок, отвечающих за определенное действие. Обозначение этих кнопок разберем по порядку:
- С первой кнопки можно начать запись;
- С помощью второй кнопки можно остановить запись;
- Третья кнопка говорит, о возможности воспроизведения;
- Четвертая кнопка используется для многократного запуска;
- И, наконец, пятая кнопка даёт возможность сохранить записанный макрос.
Как видите представленные кнопки достаточно просты и понятны.
Применение макросов
Рассмотрим на примере, как записать макросы в Notepad ++. Для этого запишем любой макрос, чтобы на примере увидеть своими глазами последовательность всех действий.
Представим, что вместо сниппета у нас будет первая строка, в которой записано — document.write().
Кликаем по кнопке «Начать запись». Между тем видим, как кнопка меняет цвет с красного на серый. Это будет означать, что процесс записи запущен. Далее нужно ввести «Notepad ++» также в первую строку:
После ввода, жмём на кнопку “Остановить запись”. Редактор записал всё, что мы сделали, то есть записали код строки, в которой вводили исходные данные. Чтобы удостовериться, произошла ли запись верно, нажимаем кнопку “Воспроизвести”. После чего, редактор воспроизведёт нужную строку. Если необходимо воспроизвести записанную последовательность действий неоднократно, нужно воспользоваться кнопкой «Многократный запуск».
После всех вышеперечисленных действий надо сохранить записанную последовательность действий, тем более, что такая последовательность хранится в оперативной памяти программы Notepad++ только до выхода из неё. После закрытия текстового редактора, макрос сразу же пропадёт. Так, для того, чтобы сохранить его, нужно нажать на кнопку «Сохранить записанный макрос». В результате чего в появившемся окне следует обозначить значения «горячих клавиш», а для сохранения нужно прописать имя макроса. Назовём его просто Document.
Чтобы удостовериться, сохранился ли макрос, существует как минимум два способа. В первом способе для начала нужно перейти в раздел «Макросы». В появившемся списке вместе с системными командами должна располагаться созданная нами последовательность действий.
Во втором способе мы увидим все макросы, сохраненные ранее. Для этого также нужно перейти в раздел «Макросы». Затем в выпавшем списке выбрать «Управление макросами». В открывшемся окне управления будет располагаться наш макрос.
В итоге в первом и во втором способе мы увидели созданный макрос — document.
Более того, в данном окне можно избавиться от ненужного макроса с помощью кнопки «Удалить». Или же заменить сочетание горячих клавиш на другое для него.
Заключение
Конечно, далеко не все пользователи пользуются макросами. Но знание о том, как записать и использовать макросы в Notepad ++, не только ускорит вашу работу, но и облегчит ваш труд.
Чтобы начать запись макроса или последовательность наших действий, нам необходимо нажать на кнопке записи (как и в любой другой программе).
Далее нажимаем на кнопке замены текста (см.скриншот), или вызываем его сочетаниями клавиш CTRL + F, которые тем самым поместят выделенный текст внутри окошка замены.
В поле самой замены текста ничего не ставим, так как нам не нужно что-то подставлять вместо него, а просто удалить.
Ту же процедуру повторяем с другими классами в html коде, т.е. выделяем необходимый для удаления текст и переходим к окну его замены.
Как только мы убрали все лишние записи, останавливаем макрос.
И сохраняем его, чтобы с аналогичным вариантом текста замена происходила по нажатию одной клавиши вместо последовательности действий, которые мы только что выполнили.
При желании можно на данную операцию или макрос установить собственные сочетания клавиш.
Можете протестировать этот макрос, вставив похожий html код и нажав на кнопке test из выпадающего пункта меню.
В этом уроке мы рассмотрели основной принцип действия и записи экшена или макроса для Notepad++.
Читайте также: