Найти тему
Мысли вслух

Облегчаем работу с текстами

Оглавление

Сегодня хочу рассказать о программе, которой пользуюсь давно и которая не раз помогала мне серьезно облегчить работу. Эта программа называется Notepad++.

Notepad++ - это бесплатный текстовый редактор с огромными возможностями.

Как Notepad++ может помочь в работе? Рассмотрим некоторые способы применения.

Операции с текстом при помощи регулярных выражений

. Точка. Обозначает любой символ

\ Экранирующий символ. Символы которые экранируются: ^, [, ., $, {, *, (, ), \, +, |, ?, <, >

^ Крышка. Начало строки

$ Конец строки

\d Любая цифра

\D Не цифра

\s Пробел, табуляция, перенос строки

\S Не пробел

\w Любая буква латиницы, цифра, или знак подчёркивания

\W Не латиница, не цифра, не подчёркивание

| Или. Соединяет несколько вариантов

\b Граница слова. Применяется когда нужно выделить, что искомые символы являются словом, а не частью другого слова

\B Не граница слова

\< Начало слова

\> Конец слова

\A Начало текста

\Z Конец текста

* Повторитель. Означает что предшествующий символ может работать 0 и более раз

+ Количество предшествующего не менее 1-го.

? Ограничитель. Не более одного раза

[ ] В квадратных скобках задаются символы к поиску, например [a-яА-Я], или [0-9]

[^ ] Исключает из поиска символы указанные в квадратных скобках

() В круглые скобки заключаются все комбинации с "или" и поиск начала и конца строк

{ } В фигурных скобках указывается точное количество вхождений, например если надо две цифры, то \d{2}, если две или четыре, то \d{2,4}, если четыре и более, то {4,}

\n Новая строка

Полезные шаблоны

Заключить каждую строку в теги html, кавычки, скобки

Найти:

(^.*$)

Заменить на:

<p>\1</p> Можно вместо тега или кавычки, или скобки. Если не сработает, то попробуйте добавить перед ними символ экранирования

Убрать все теги html, вместе с содержимым, оставить только текст между открывающим и закрывающим тегом

Найти:

[<].*?>

Заменить на:

Пусто

Найти даты написанные в формате дд месяц гггг г., остальное убрать

Найти:

(\d{1,2}+\s+[а-яА-Я]+\s+\d{2,4}+\s+[а-я]\.)|.

Заменить на:

$1

Найти дату со слешем, например: 20/5/2020, остальное убрать

Найти:

(\d{1,2}\/\d{1,2}\/\d{4})|.

Заменить на:

$1

Найти даты в формате дд.мм.гггг и дд-мм-гггг, остальное убрать

Найти:

(\d{1,2}+(-|\.)+\d{1,2}+(-|\.)+\d{2,4})|.

Заменить на:

$1

Найти всё между кавычек

"([^"]*)"

Найти всё между скобок

\(([^\(]*)\)

Найти все адреса электронной почты, а остальное всё убрать

Найти:

(\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}\b)|.

Заменить на:

$1

Удалить всё, оставив только ссылки

Найти:

^[^"]+.([^"]+).*

Заменить на:

$1

Найти почтовый индекс, а остальное убрать

Найти:

(\b\d{6}\b)|.

Заменить на:

$1

Поменять местами ФИО и дату рождения. Например "Кузнецов Андрей Николаевич 26.10.1983", на "26.10.1983 Кузнецов Андрей Николаевич"

Найти:

(\w+) (\w+) (\w+) (\d+.\d+.\d+)

Заменить на:

\4 \1 \2 \3

Перенести буквы в начало, в выражениях формата 6465C, 498558JR, 1286458975KTD и т.д.

Найти:

\b(\d*)([A-Z]+)(\d*)\b

Заменить на:

$2$1$3

Удалить атрибут с разными URL

tppabs="(.+?)"

Заменить один html тег на другой, открывающую и закрывающую части

Найти:

<p>(.*)</p>

Заменить на:

<span>\1</span>

Удалить всё в строке после определённого символа или слова, вместе с ним

Найти:

(.*)Примечания(.*)

Заменить на:

\1

Удалить всё после символа использующегося и в регулярных выражениях, например *

Найти:

(.*)\*(.*)

Заменить на:

\1

Сделать перенос строки перед каждой заглавной буквой

Найти:

(\S)([A-ZА-ЯЁ])

Заменить на:

$1\r\n$2

Удалить из ссылки всё, кроме домена

.*://|/.*

Убрать всю табуляцию

Найти:

\t

Заменить на:

Пусто

Удалить все комментарии из html кода

<!--([\s\S]*?)-->

Удалить все комментарии из CSS кода

\/\*.*?\*\/

Удалить все комментарии вида // из PHP кода.

\//[\s\S]*?\/

Привести к одному размеру все находящиеся в открытых файлах картинки

Найти:

<img width="(\d+)" height="(\d+)" src="">

Заменить на:

<img width="(200)" height="(200)" src="">

Удалить в строке всё после пробела

Найти:

^(.+?)\s.+$

Заменить на:

\1

Удалить во всех строках всё до определённого символа, например до ?

^.*\?

Удалить все строки в которых определённое число символов, например меньше 100

^(.{0,100})\r\n

Удалить все запятые, после которых идёт буква или пробел, но не цифра

,(?=\D)

Найти и, если надо, удалить время в формате ММ:СС. Актуально для стенограмм и расшифровок видео

Найти:

(\d+\:\d+)

Заменить на:

\0 или Пусто

Взять в круглые скобки время в формате ММ:СС, находящееся в любой части текста

Найти:

(?<!\d)\d\d:\d\d(?!\d)

Заменить на:

\($&\)

Добавить в каждую пустую строку

Найти:

^\s*$

Заменить на:

Любой символ или слово

Отредактировать расшифровку видео

1. Убираем раскадровку по времени

Найти:

(\d+\:\d+)

Заменить на:

Пусто

2. Объединяем предложения, с разделением пустой строкой

Найти:

(?<=[^.])\r\n\r\n

Заменить на:

Пусто

Макросы

Другая отличная возможность Notepad++ - возможность создания макросов для различных действий - например, замена какого-то текста, установка тегов HTML и т.д.

Макросы хранятся в файле shortcuts.xml, в секции, заключенной между тегами: <Macros>...</Macros>.

Макросы выглядят так:

<Macro name="to-html" Ctrl="no" Alt="no" Shift="no" Key="0">

<Action type="0" message="2422" wParam="0" lParam="0" sParam="" />

<Action type="0" message="2325" wParam="0" lParam="0" sParam="" />

<Action type="0" message="2422" wParam="0" lParam="0" sParam="" />

<Action type="0" message="2325" wParam="0" lParam="0" sParam="" />

</Macro>

Action type – это тип действия. В случае “0”, это действие относящееся к общим командам, в случае “2” – к командам, дублирующим команды меню.
Если писать общую команду, код указывается в message, а wParam принимает значение “0”.
Если писать команду, дублирующую команду меню, message принимает значение “0”, а wParam – код.

Создать макрос можно записав его и сохранив: нажать на кнопку записи макроса, выполнить необходимые действия, остановить запись и нажать "Сохранить макрос".

Так же, макрос можно напрямую написать в файле shortcuts.xml. Изменения будут доступны после перезапуска программы.

Макросы можно объединять - можно записать несколько маленьких макросов, а потом вручную их объединить, перенеся строки команд, заключенные между тегами <Macro>...</Macro>, из одного макроса в другой и сохранив файл shortcuts.xml.

Общие команды (писать в message, wParam="0") 

2300 - Курсор вниз
2301 - Курсор вниз с выделением
2302 - Курсор вверх
2303 - Курсор вверх с выделением
2304 - Курсор на одну позицию влево
2305 - Курсор на одну позицию влево с выделением
2306 - Курсор на одну позицию вправо
2307 - Курсор на одну позицию вправо с выделением
2308 - Переместить курсор на начало слова (влево)
2309 - Переместить курсор на начало слова (влево) с выделением
2310 - Переместить курсор на начало след. слова (вправо)
2311 - Переместить курсор на начало след. слова (вправо) с выделением
2312 - Курсор в начало строки
2313 - Курсор в начало строки с выделением
2314 - Курсор в конец строки
2315 - Курсор в конец строки с выделением
2316 - Курсор в начало текста
2317 - Курсор в начало текста с выделением
2318 - Курсор в конец текста
2319 - Курсор в конец текста с выделением
2320 - Курсор в первую строку с сохранением позиции
2321 - Курсор в первую строку с сохранением позиции с выделением
2322 - Курсор в конец текста
2323 - Курсор в конец текста с выделением
2324 - Изменить режим редактирования - Вставка или замена
2326 - Удалить одну позицию влево (BKSP)
2327 - TAB
2328 - Курсор влево на одну позицию табуляции
2329 - Перевод строки (ENTER)
2330 - Вставка в текст кода 12 (0CH)
2331 - Курсор в начало строки
2332 - Курсор в начало строки с выделением
2333 - Текст крупнее
2334 - Текст мельче
2335 - Удалить от курсора до начала текущего слова
2336 - Удалить от курсора до начала след. слова
2337 - Вырезать текущую строку в буфер обмена
2338 - Удалить текущую строку
2339 - Поднять текущую строку
2342 - Скролл текста вниз с сохранением позиции курсора
2343 - Скролл текста вверх с сохранением позиции курсора
2344 - Удалить одну позицию влево (BKSP)
2345 - Курсор в начало строки
2346 - Курсор в начало строки с выделением
2347 - Курсор в конец строки
2348 - Курсор в конец строки
2349 - Курсор в начало строки
2358 - Скрыть весь текст
2373 - Размер текста по умолчанию
2390 - Курсор влево на начало или конец слова
2391 - Курсор влево на начало или конец слова с выделением
2392 - Курсор вправо на начало или конец слова
2393 - Курсор вправо на начало или конец слова с выделением
2395 - Удалить от курсора до начала строки
2396 - Удалить от курсора до конца строки
2404 - Продублировать текущую строку
2413 - Курсор на след. фрагмент
2414 - Курсор на след. фрагмент с выделением
2415 - Курсор на пред. фрагмент
2416 - Курсор на пред. фрагмент с выделением
2426 - Курсор вниз
2427 - Курсор вверх
2428 - Курсор на одну позицию влево с выделением
2429 - Курсор на одну позицию вправо с выделением
2430 - Курсор в начало строки с выделением
2432 - Курсор в конец строки с выделением
2433 - Курсор в первую строку с сохранением позиции.
Если курсор сместился, с выделением блока
2434 - Курсор на хх (хх - кол-во строк на экране) строк вниз с сохранением позиции.
Если курсор сместился, с выделением блока
2435 - Курсор на верхнюю строку на экране
2436 - Курсор на верхнюю строку на экране с выделением
2437 - Курсор на нижнюю строку на экране, или на след. экран в нижнюю строку
2438 - Курсор на нижнюю строку на экране, или на след. экран в нижнюю строку с выделением
2439 - Курсор влево на конец пред. слова
2440 - Курсор влево на конец пред. слова с выделением
2441 - Курсор вправо на конец след. слова
2442 - Курсор вправо на конец след. слова с выделением
2450 - Курсор в начало строки с выделением
2451 - Курсор в конец строки
2452 - Курсор в конец строки с выделением
2453 - Курсор в начало строки
2454 - Курсор в конец строки с выделением
2455 - Скопировать текущую строку в буфер
2469 - Продублировать текущую строку
2470 - Убрать подсветку строки

Дублирующие команды меню (писать в wParam, message="0")

41001 - Новый
41002 - Открыть
41003 - Закрыть
41004 - Закрыть все
41005 - Закрыть все, кроме активного
41006 - Сохранить
41007 - Сохранить все
41008 - Сохранить как...
41010 - Печать...
1001 - Быстрая печать
41011 - Выход
41012 - Загрузить сессию...
41013 - Сохранить сессию...
41014 - Перезагрузить с диска

42001 - Вырезать
42002 - Копировать
42003 - Отмена
42004 - Повтор
42005 - Вставить
42006 - Удалить
42007 - Выделить всё
42008 - Вставить Tab (Отступ)
42009 - Удалить Tab (Втяжка)
42010 - Дублировать строку
42012 - Разбить строки
42013 - Объединить строки
42014 - Поднять текущую строку
42015 - Опустить текущую строку
42016 - ПРОПИСНЫЕ
42017 - строчные
42018 - Старт записи
42019 - Стоп записи
42021 - Прокрутить запись
42022 - Блоковый комментарий
42023 - Потоковый комментарий
42024 - Обрезать пробелы
42025 - Сохранить запись макро...
42026 - Текст справа налево
42027 - Текст слева направо
42028 - Только чтение
42029 - Копировать путь и имя файла в буфер обмена
42030 - Копировать имя файла в буфер обмена
42031 - Копировать путь к файлу в буфер обмена
42032 - Запустить многократно...
42033 - Снять флаг "только чтение"

43001 - Поиск...
43002 - Искать далее
43003 - Замена...
43004 - Переход к...
43005 - Закладки
43006 - Следующая...
43007 - Предыдущая...
43008 - Очистить все закладки
43009 - Сопоставить скобку
43010 - Искать ранее
43011 - Поиск по мере набора...
43013 - Найти в файлах
43014 - Найти такое же слово
43015 - Такое же предыдущее
43016 - Выделить все
43017 - Снять выделение

44010 - Свернуть все
44011 - Личные опции
44019 - Все символы
44020 - Значения отступов
44022 - Перенос строк
44023 - Крупнее
44024 - Мельче
44025 - Пустые пробелы и Tab
44026 - Символ конца строки
44029 - Развернуть все
44030 - Свернуть текущий фрагмент
44031 - Развернуть текущий фрагмент
44032 - Во весь экран
44033 - Восстановить масштаб...
44034 - Всегда сверху
44035 - Синхронизировать вертикальную полосу прокрутки
44036 - Синхронизировать горизонтальную полосу прокрутки
44041 - Показывать символ перевода строки

45001 - Преобразовать в Win-формат
45002 - Преобразовать в UNIX-формат
45003 - Преобразовать в MAC-формат
45004 - Кодировать в ANSI
45005 - Кодировать в UTF-8
45006 - Кодировать в UCS-2 Big Endian
45007 - Кодировать в UCS-2 Little Endian
45008 - Кодировать в UTF-8 (без BOM)

10001 - Вторым окном
10002 - Копировать во второе окно

46001 - Определение стилей...
47000 - О программе...
47001 - Домашняя страница Notepad++
47002 - Notepad++ : страница проекта
47003 - Помощь в Интернет
47004 - Форум
47005 - Больше дополнений

48009 - Горячие клавиши...
48011 - Настройки...
49000 - Запуск...

50000 - Завершение функций
50001 - Завершение слов
42034 - Редактор столбцов...
44042 - Спрятать строки
42040 - Открыть все недавние файлы
49000 - Запуск...

50000 - Дополнение функций
50001 - Дополнение слов
42034 - Редактор колонок...
44042 - Спрятать строки
42040 - Открыть все недавние файлы
42041 - Очистить список недавних файлов

При необходимости, в Notepad++ можно настроить запуск внешних программ. Это настраивается в секции, расположенной между тегами: <UserDefinedCommands>...</UserDefinedCommands>.

Например, так:

<UserDefinedCommands>
        <Command name="
Запуск архиватора 7-zip" Ctrl="no" Alt="no" Shift="no" Key="120">"c:\Program Files (x86)\7-Zip\7zFM.exe" "$(FULL_CURRENT_PATH)"</Command>
    </UserDefinedCommands>

Это удобно, поскольку Notepad++ умеет работать с синтаксисом многих языков программирования, а таким нехитрым способом можно подключить, например, компилятор.

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

Подписывайтесь на канал, делитесь заметкой в социальных сетях.