Как найти файл в Emacs без известного точного каталога?

в vim очень легко найти файл, не зная, в каком каталоге находится файл. Выполнение этого": args **/file.hpp " если файл существует, он откроет его.

есть ли какая-либо подстановка в Emacs для этого? Файл find-file кажется работающим для подстановочных знаков, но он не делает сложного, как vim с **.

6 ответов


M-x find-name-dired выглядит так, как вы хотите (вам будет предложено корневой каталог для начала поиска и маска файла)


более тупой, но все же удобный инструмент:M-x locate

использование OS X? Это заставляет emacs использовать spotlight вместо стандартного locate:

(setq locate-command "mdfind")

хороший совет, если вы используете ido-find-file:
Из известного корневого каталога вы можете использовать ido-wide-find-file-or-pop-dir, который по умолчанию привязан к M-f.


FindFileInProject также может быть стоит посмотреть.


на сосульки вы можете найти файлы, сопоставляя не только относительное имя файла, но и любые части пути. Вы можете использовать подстроку, регулярное выражение и нечеткое сопоставление. Вы можете и вместе несколько шаблонов поиска (прогрессивное завершение). См. раздел multi-command icicle-locate-file. И вы даже можете искать содержимое файла, а также или вместо имени файла.

http://www.emacswiki.org/emacs/Icicles_-_File-Name_Input


мне нравится

M-x ifind /some/path/to/start/file.hpp

или просто

M-x ifind file.hpp

С помощью пакета ifind нашли здесь. Примечание: он открывает *ifind* буфер, который отображает результаты, которые вы можете выбрать с помощью мыши, или перемещаться с помощью C-x' (он же M-x следующая ошибка).