В Emacs, как я могу искать в каталоге и во всех подкаталогах имя файла?
4 ответа
В dired вы можете перечислить все подкаталоги посещенного каталога, перейдя к первой строке и нажав C-u l
и добавив переключатель R
Затем вы можете найти имя файла в буфере или пометить файлы на основе регулярного выражения с % m
.
В Linux, Windows с утилитами Cygwin или других Unix-подобных системах с GNU find, быстрый и грязный хак - M-x grep-find
, и отредактируйте командную строку, чтобы она содержала только часть find
с подходящим форматом:
find -type f -name '*.foo' -printf '%p:0:\n'
В любой системе, в которой доступны инструменты Unix, вы можете запустить команду find
с помощью M-! find
. В буфере вывода вы можете использовать M-x ffap
для посещения выбранного файла. Вы также можете настроить Dired-х , так что C-u C-x C-f
может быть использован вместо M-x ffap
Вы можете открыть: */foo.bar
для поиска любых файлов с именем foo.bar в прямом подкаталоге текущего или **/foo.bar
для рекурсивного поиска любых файлов с именем foo.bar в подкаталогах текущего.
В emacs 23 попробуйте M-x find-dired
Вы можете использовать M-x find-name-dired
. Будет запрошен каталог и шаблон подстановки, так что вы можете ввести что-то вроде *thing*
и все файлы с именем "thing" будут перечислены в буфере с задержкой.
Подробнее здесь: http://emacswiki.org/emacs/RecursiveGrep (вместе с фрагментом, который позволяет также пропустить выписывание звезд).