В Emacs, как мне найти каталог и все подкаталоги по имени файла?
В Emacs, как мне найти каталог и все подкаталоги по имени файла?
6 ответов
Ты можешь использовать M-x find-name-dired
, Он попросит каталог и шаблон подстановки, чтобы вы могли ввести что-то вроде *thing*
и все файлы с "вещью" в имени перечислены в буфере с задержкой.
Подробнее здесь: http://emacswiki.org/emacs/RecursiveGrep (вместе с фрагментом, который позволяет также пропустить выписывание звезд).
В 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-X, чтобы C-u C-x C-f
можно использовать вместо M-x ffap
,
Сегодня это можно сделать с помощью функцииdirectory-files-recursively
.
Вы можете открыть: */foo.bar
для поиска любых файлов с именем foo.bar в прямом подкаталоге текущего или **/foo.bar
для поиска любых файлов с именем foo.bar рекурсивно в подкаталогах текущего.
Если вы используете консультацию , есть очень удобная функцияconsult-find
:
Он обновляет минибуфер по мере ввода, а затем вы можете просто выбрать нужный элемент и нажать, ENTERчтобы открыть файл в буфере.
Я также использую vertico для вертикального отображения минибуфера и поля для аннотаций функций в минибуфере, показанных на первом снимке экрана.