Emacs рекурсивный поиск / замена в Windows без Cygwin

Чтобы ответить "где я тоже использовал этот идентификатор?" -вопросы, я бегу на MacOS и Linux

dired-maybe-insert-subdir
dired-mark-files-regexp

сопровождаемый любым из:

dired-do-find-regexp
dired-do-find-regexp-and-replace

В Windows я могу использовать Emacs в качестве своей IDE без Cygwin, за исключением рекурсивного поиска / замены.

Предлагает ли Projectile команды, которые будут искать / заменять идентификатор рекурсивно, не требуя Cygwin?

Любой другой пакет делает возможным рекурсивный поиск / замену в Windows без Cygwin?

Я не беспокоюсь о скорости, потому что даже после установки Cygwin, рекурсивный вызов Cygwin's grep изнутри Emacs мучительно медленно.

Обновить:

Рекурсивный поиск / замена, кажется, доступен как в Хелме, так и в Снаряде.

Если это правда, то мой вопрос:

  1. Доступна ли эта функция в Windows без Cygwin?
  2. Список requireв моем .emacs уже чрезмерно. Что такое легкий пакет, который будет выполнять рекурсивный поиск / замену (без Cygwin в Windows)?

Разъяснение:

ХОРОШО. Успех. [Спасибо Дрю] С .emacs не содержащий ничего, кроме (require 'dired+)Я могу искать и заменять в отмеченных файлах, используя M-+ Q в Windows без установленного Cygwin. Я предполагаю, что это также будет работать на Linux/ MacOS, хотя, возможно, не так быстро, как делегирование grep, (Подтверждение "Действовать по ВСЕМ файлам [] in и ПОД ЭТОМ dir?" Станет утомительным, но это отдельный вопрос.)

По настоящему вопросу один вопрос нуждается в уточнении. dired+ увеличивает встроенный dired семейство команд. Есть ли способ для этого взять на себя обычный dired-do-find-regexp-and-replace? Это потому, что с одним вкладышем .emacsи с несколькими отмеченными файлами в списке каталогов, я получаю

File not found - GREP
File not found - -I
...
File not found - NUL
File not found - ;

указывая на то, что grep все еще вызывается. Как можно сказать dired+ "Я на Windows, и я не буду устанавливать Cygwin; A а также Q?" (отображается по умолчанию dired-do-find-regexp и вышеупомянутая команда).

Редакция: dired+ кажется немного подавляющим, но если это решит эту одну проблему (устраните необходимость в Cygwin в Windows), то стоит выяснить, как перейти от обычного dired команды для dired+,

1 ответ

Решение

Я думаю, что вы ищете способ поиска файлов и получения списка тех, которые соответствуют регулярному выражению. Если tags-query-replace работает у вас на MS Windows (без Cygwin), и я думаю, что должно, тогда вы можете использовать команду diredp-do-query-replace-regexp-recursiveсвязано с M-+ Q по умолчанию доступно из Dired+.

Это действует на все помеченные файлы в текущем буфере Dired и на все помеченные файлы во всех помеченных подкаталогах буфера и т. Д. Рекурсивно.

С неотрицательным префиксом arg он действует рекурсивно на все файлы в текущем буфере и на все файлы во всех подкаталогах. (То есть любые метки игнорируются, и эффект такой, как если бы все было помечено.)


Если вместо поиска файлов, которые соответствуют регулярному выражению, вы хотите искать файлы, тогда вы можете использовать команду diredp-do-isearch-regexp-recursiveсвязано с M-+ M-s a C-M- по умолчанию также доступно из Dired+. Файлы для доступа определяются аналогично (все Dired+ dired[p]-do...-recursive Команды действуют аналогично (в зависимости от того, какие файлы определены). Это определенно не требует никаких команд Cygwin и т. Д. - это просто Isearch.

Другие вопросы по тегам