Редактор с мути-линией поиска и замены

3581
Art

Я ищу текстовый редактор для Windows, способный выполнять поиск и замену многострочного текстового блока.

Он должен быть в состоянии выполнить эту операцию для папки или открытых в данный момент файлов.

В идеале он поддерживает регулярные выражения, но это не обязательно.

Спасибо!

4

6 ответов на вопрос

8
Shane

Я использовал Notepad ++ некоторое время, когда мне все еще приходилось делать что-то на компьютере с Windows; он получил достойную поддержку регулярных выражений. Он имеет интуитивно понятный интерфейс, и вам не придется запоминать сочетания клавиш и сочетания клавиш.

Пробный блокнот, работает нормально, только небольшая проблема в том, что многострочный текст не отображается корректно в небольшой текстовой области, предназначенной для поискового предложения. (странные символы там, где должны быть символы табуляции и \ r \ n). Иначе любить это! Особенно группировка результатов поиска. Art 14 лет назад 0
Хм, прошло уже много времени с тех пор, как я его использовал, но я думаю, что есть варианты того, как выглядят переводы строк, возврат каретки и вкладки. Возможно, вы захотите немного поиграть с настройками. Раньше я переключался между видимыми символами для тех и более обычным видом в зависимости от того, что я делал. Shane 14 лет назад 0
Notepad ++ также является готовым пакетом в программном менеджере Ubuntu. Я использую его для многострочной замены, и он работает очень хорошо. Felix Dombek 5 лет назад 0
2
wfaulk

напор

Блоки выбираются с помощью v, Ctrl-V или Shift-V (среди других способов). После выбора команды замены выполняются для блока по умолчанию.

Можете ли вы искать выбранный блок в открытых файлах в VIM? Art 14 лет назад 0
@ Искусство да, но я не представляю, как непривычно. quack quixote 14 лет назад 0
Я не понимаю вопроса. wfaulk 14 лет назад 0
По сути, я выбираю блок текста с «V», а затем я хочу найти _selected текст_ (не внутри него) в данном файле / папке. Может ли Vim сделать это? Art 14 лет назад 0
@Art - вы хотите найти выделенный блок текста в файлах в папке, верно? Не внутри, но vim использует несколько инструментов для такого рода вещей (grep и тому подобное), поэтому начните с этого и посмотрите, что вам нужно. Rook 14 лет назад 0
Я не могу придумать тривиальный способ сделать это, нет. Вы можете написать себе простой скрипт, который будет принимать входные данные и искать его в других файлах, а затем использовать этот скрипт изнутри vim в качестве фильтра, возможно. Это странный запрос. wfaulk 14 лет назад 0
@Idigas: на самом деле, у Vim есть встроенный grep: "`: vimgrep` ", но я не могу придумать, как получить визуальный блок внутри шаблона. wfaulk 14 лет назад 0
@wfaulk, спасибо за твои посты, но я думаю, что я буду придерживаться np ++. Art 14 лет назад 0
Да, Vim определенно может сделать это, но я не думаю, что такая маленькая особенность стоит изучения Vim. Sasha Chedygov 14 лет назад 0
2
dmckee

Emacs

Используется C-q C-jдля указания новой строки в шаблоне для сопоставления или замены. Поддерживается обычный текст и регулярное выражение, либо все сразу, либо в режиме запроса (получите подтверждение для каждого совпадения).

Функции, которые вы хотите

replace-string query-replace-string replace-regexp query-replace-regexp 

и все они могут быть вызваны M-x <function name>. У некоторых есть привязки по умолчанию.

Используйте, C-h f <function-name>чтобы узнать, какая привязка в настоящее время назначена любой функции.

Чтобы выбрать блок из текста для использования

  1. Больше указывает на один конец блока. Хит C-<space>.
  2. Переместите точку на другой конец. Хит, C-wкоторый затем дернет весь блок, C-yчтобы вернуть выдернутый блок или вызвать copy-region-as-kill.
  3. M-x <function>затем C-yвставить блок в область поиска. Новые строки обрабатываются естественно.
  4. продолжай как обычно.
Вы также можете выделить блок текста, выделив его мышью. Я знаю, это звучит очевидно, но некоторые люди не знают, что Emacs - это приложение с графическим интерфейсом. Richard Hoskins 14 лет назад 0
1
Jim McKeeth

EditPadPro для победы! Он делает все, что вы просили:

  1. Многострочный поиск и замена
  2. Заменить поверх всех открытых файлов
  3. Поддержка регулярных выражений

На самом деле, я думаю, что бесплатная версия делает все это тоже.

Это действительно лучший текстовый редактор, который я когда-либо использовал. В нем есть все функции, которые могут вам понадобиться. Я обычно нахожу, что это выходит за рамки служебного долга.

0
Hallgrim

Когда мне нужен многострочный поиск-замена, я использую Microsoft Word. Я никогда не использую Microsoft Word в качестве текстового редактора, кроме случаев, когда мне нужна эта функция. Вы можете использовать ^ p для поиска разрывов строк.

Обычно я делаю это:

I edit a text file in my favorite text editor, but I need multi-line search-replace Ctrl-A, Ctrl-C to select and copy all text editor Start Microsoft Word Ctrl-V Search/Replace "First line^pSecond line" with "New first line^pNew second line" Ctrl-A, Ctrl-C to select and copy all from Word Switch back to text editor Ctrl-V to paste newly fixed-up text Continue editing document in my favorite editor 

Это работает для меня.

0
ksg91

Не текстовый редактор, но вы должны дать TextCrawler шанс. Это очень легкий и мощный инструмент для поиска и замены файлов. Простой и хороший интерфейс для размещения многострочного текста.

Это позволяет стандартный поиск, регулярное выражение, нечеткий поиск и пакетные команды.