Найдите несколько строк в Notepad ++

Есть ли способ найти абзац?

Например, я хочу найти этот код:

<?php
    $radio_buttons++;
  }
?>

Но когда я пытаюсь скопировать это в поле поиска, он копирует только первую строку <?php.

Похоже, что определенно есть способ сделать это, но я просто не могу его найти. Может это аддон?


person Sackling    schedule 30.03.2011    source источник
comment
Я сейчас на Mac, поэтому не могу проверить, но я, кажется, припоминаю, что Notepad ++ позволяет указывать регулярное выражение в поле поиска?   -  person Matti Lyra    schedule 30.03.2011
comment
Да, но я все еще не могу вставить больше одной строки   -  person Sackling    schedule 30.03.2011


Ответы (10)


Я написал многострочный поиск и заменил надстройку для Notepad ++, посмотрите здесь: http://www.phdesign.com.au/programming/toolbucket-multi-line-search-plugin-for-notepad/

Снимок экрана ToolBucket
(источник: phdesign.com.au)

person phdesign    schedule 05.03.2012
comment
Это отличный материал. Спасибо .. Много месяцев спустя это все еще оставалось проблемой, и это прекрасно работает. Если бы у меня была всего одна крошечная придирка, это то, что использование ctral + A для выбора всего, которое я делаю, чтобы стереть предыдущий поиск, похоже, не работает. - person Sackling; 07.03.2012
comment
Спасибо за разработку этих очень полезных инструментов. Я установил их на свой настольный компьютер и портативные версии Notepad ++. Я буду рекомендовать их своим коллегам. - person Francisco Alvarado; 28.03.2012
comment
+1 и спасибо! Мне нравится, что вы сделали операцию поиска и замены похожей на графический интерфейс Dreamweaver. Не хватает только возможности сохранять регулярные выражения. - person t.mikael.d; 06.05.2012
comment
Спасибо, Пол, за полезный инструмент. @ t.mikael.d текущая версия плагина уже сохраняет все ранее использованные регулярные выражения, вы можете использовать эти регулярные выражения, щелкнув очень маленькую кнопку со значком календаря между текстовыми полями «Найти / заменить» и кнопками справа. - person MohamedEzz; 18.10.2012
comment
Плагин у меня не работает с Notepad ++ 5.x.x. Но работает как шарм с 6.x.x - person MohamedEzz; 18.10.2012
comment
Спасибо за этот замечательный плагин, я работаю с большим количеством документов, для которых требуется функция многострочного поиска и замены. Как хорошо, что вы предоставили сообществу этот отличный инструмент. Спасибо!! - person klewis; 06.02.2013
comment
У меня есть одна проблема с этим плагином: нет возможности заменить во всех открытых документах (как в поиске по умолчанию) - person Sony packman; 24.03.2013
comment
Спасибо за этот плагин. Это мне очень помогло. - person Sergey Snegirev; 19.07.2013
comment
Отличный плагин Пол .. Есть еще возможность заменять текст в файлах, не открывая их? т.е. дать ему каталог для замены текста в нем? Спасибо - person Mike; 13.09.2013
comment
@Mike, сейчас нет. Хорошая идея, это невозможно с файловой системой Windows POE Windows 10 - person NightSkyCode; 05.06.2015
comment
@phdesign Я только что попытался установить этот плагин, к сожалению, он не совместим с последней версией Notepad ++, нет 64-битной версии? - person AidanO; 14.06.2017
comment
Сейчас есть поддержка 64-битной версии (с июня 2017 года). - person hfontanez; 17.05.2019

Как предлагает Xenovoyance, это возможно с помощью CTRL + R (также находится в пункте меню TextFX> TextFX Quick> Найти / заменить):

Просто выделите текст, который нужно найти, затем активируйте эту опцию ... Многострочный поиск / замена

ОБНОВЛЕНИЕ. Пользователь Żabojad заставил меня понять, что в последних выпусках Notepad ++ " TextFX "не установлен по умолчанию, поэтому сначала вам нужно сделать одно из двух:

  1. Самый простой: перейдите в пункт меню Плагины> Диспетчер плагинов> Показать диспетчер плагинов, прокрутите список доступных плагинов до «Символы TextFX "и установите его. Установить из диспетчера подключаемых модулей

  2. Вышеупомянутый способ должен работать, но в противном случае вам придется перейти на эту страницу: http://sourceforge.net/projects/npp-plugins/files/TextFX/TextFX%20v0.26/ и загрузите файл TextFX.v0.26.unicode.bin.zip  Загрузить символы TextFX затем извлеките его содержимое (а не просто скопируйте zip-файл) в подпапку \plugins папки установки Notepad ++  Скопируйте dll в папку плагинов Notepad ++

После перезапуска Notepad ++ вы увидите пункт меню TextFX.

person Francisco Alvarado    schedule 15.04.2011
comment
К сожалению, этот плагин также не поддерживает редактирование нескольких открытых документов. - person Sony packman; 24.03.2013
comment
Ctrl + R не работал у меня, пока я не зашел в Настройки ›Сопоставитель ярлыков, не щелкнул строку« Перезагрузить с диска »и не щелкнул Очистить, чтобы удалить конфликтующий ярлык Ctrl + R. - person gamingexpert13; 11.07.2019

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

Поиск вашего кода будет примерно таким:

<?php.*\r\n.*$radio_buttons++;.*\r\n.*}.*\r\n.*?>

. * - это просто подстановочный знак для любого количества символов (кроме разрывов строк). Вы также можете установить флажок в диалоговом окне Notepad ++ (называется . Соответствует новой строке), чтобы включить разрывы строк.

Подробное описание см. В верхнем ответе на этот вопрос:

Найдите CRLF в Блокноте ++

person coeing    schedule 23.05.2012

Cntrl+C указанный выше текст, который вы хотите найти, и Cntrl+V его в новый пустой документ в Notepad ++, затем выберите его еще раз и нажмите Cntrl+F. Вы увидите свой текст в поле «найти» с пробелами табуляции по мере разрыва строки. Не нужны плагины.

person Leb_Broth    schedule 23.12.2014
comment
Подтверждено в Notepad ++ 6.6.9. Вы можете проверить фактическую строку поиска в разделах <Find ...> в <FindHistory...> в файле config.xml Notepad ++. - person AdrianHHH; 23.12.2014

Насколько мне известно, Notepad ++ не поддерживает многострочные регулярные выражения, поэтому вам придется делать это, заменяя каждый разрыв строки характерными символами разрыва строки для вашей операционной системы (скорее всего, \r\n). Подробнее см. Найти CRLF в Notepad ++.

person Ian Pugsley    schedule 30.03.2011
comment
Проблема в том, что если вы вставите абзац в поле поиска, все, что вы получите, это «‹? Php ». Просто набрать один абзац в поле поиска - утомительно. - person Sahat Yalkabov; 30.03.2011
comment
Не совсем - вы можете использовать расширенный поиск, чтобы заменить все \r\n на какой-то неиспользуемый символ (тильда, вертикальная черта и т. Д.), А затем использовать нерасширенный поиск, чтобы снова заменить этот символ на \r\n (с нерасширенным \r\n не будет создаваться новый линий). Вуаля - строка поиска. Кроме того, вы можете довольно легко сделать из этого макрос. - person Ian Pugsley; 30.03.2011

Я нашел следующую ветку по связанной теме: Поиск и замена многострочного регулярного выражения!

Рекомендую попробовать CTRL + R!

person Xenovoyance    schedule 30.03.2011
comment
пытаясь CTRL + R, похоже, не работает. Еще не уверен, какие варианты выбрать. - person Sackling; 30.03.2011
comment
Я просто попробовал это на своей машине здесь (notepad ++ 5.8.6) и смог найти многострочный текстовый блог. Возможно, работает более старая версия? - person Xenovoyance; 30.03.2011
comment
да, я был на 5.8.6 и на самом деле только что обновился до .7, кажется, иногда работает **, как в абзаце в текстовом файле, но, похоже, не нравится при поиске блока кода с пробелами между ними. Возможно, это вариант, который мне не хватает. - person Sackling; 30.03.2011
comment
Только что осуществленный выбор был отмечен галочкой, теперь вроде работает! Спасибо! - person Sackling; 30.03.2011
comment
Это действительно благодаря плагинам Notepad ++ действительно засветился. Рад помочь! - person Xenovoyance; 30.03.2011

Несколько строк могут быть переданы в поля поиска и замены только в том случае, если в конце строк задана форма Unix. Это можно сделать через Правка> Преобразование EOL> Unix.

Затем вы можете вручную скопировать многострочный абзац в поле поиска.

После этого просто конвертируйте окончания строк обратно в Windows с помощью Edit> EOL Conversion> Windows

person Jan Musil    schedule 31.10.2018
comment
Отлично, никаких дополнительных плагинов не требуется - person Ehsan Rosdi; 02.01.2019

Для Notepad ++ v5.8.7 + плагин TextFX для Unicode не установлен по умолчанию, поэтому для использования CTRL + R необходимо установить TextFX Characters плагин с диспетчером плагинов.

person mykola.rykov    schedule 17.02.2012

Существует обходной путь:
Измените режим поиска на Расширенный и замените «return-newline» на \r\n
например, <?php\r\n $radio_buttons++;\r\n }\r\n?>
Проблема в том, что вам нужно знать пробел (не показан выше).

Может быть, регулярное выражение может работать?

person Michael Blake    schedule 30.03.2011

Проверьте опцию меню TextFX. Похоже, он поддерживает поиск по нескольким строкам.

person Michael Blake    schedule 05.04.2011