Emacs: самый быстрый способ открыть файл, местоположение которого неизвестно - PullRequest
11 голосов
/ 29 сентября 2010

Какой самый простой способ открыть txt-файл, путь которого нужно найти с помощью команды shell find?

Например, допустим, я хочу открыть файл, который мне известен (уникально) с именем example.txt и который я знаю, что "где-то я могу найти его с помощью оболочки find команда ".

То, что я делаю сейчас, таково:

Я делаю C-u (универсальный аргумент), затем M -! (команда оболочки)

Затем введите найти , например:

find . -iname "example.txt"

Затем в буфере появляется полный путь (который я не знал ранее), я его обрезаю, затем нажимаю Cx Cf , я удаляю то, что написано по умолчанию, а затем вставляю то, что я обрезал до .

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

Есть ли самый простой способ сделать то же самое (без написания новой пользовательской команды Emacs)?

Ответы [ 9 ]

10 голосов
/ 29 сентября 2010
M-x find-name-dired

Введите dir (по умолчанию текущий) и имя файла (оболочки тоже работают), и вы получите виртуальный dired буфер с результатами. Перейдите к нужному файлу и нажмите «a»

10 голосов
/ 29 сентября 2010

Используя только встроенные функции, я бы:

  • Перейти в буфер оболочки: Mx shell
  • Запустить команду поиска.
  • Переместите курсор вверх, чтобы он находился поверх найденного пути к файлу.
  • Запустите команду find-file-at-point: Mx ffap .

Я использую find-file-at-point достаточно часто, чтобы привязать его к выделенному ключу, s - \ (супер-обратная косая черта).

6 голосов
/ 29 сентября 2010

Попробуйте ifind.el

M-x ifind /some/starting/point/example.txt

Будет искать example.txt в каталогах ниже /some/starting/point.

2 голосов
/ 01 октября 2010

M-x locate - самый быстрый способ найти и открыть файл, особенно если вы знаете точное имя файла, в emacs.

1 голос
/ 21 августа 2011

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

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

1 голос
/ 07 октября 2010

Также взгляните на LocateFilesAnywhere

Я использую М-х anything-locate

1 голос
/ 30 сентября 2010

Если ваша папка представляет собой «проект» - что-то, находящееся под контролем версии или имеющее маркер корневой папки, такой как project.el, .dir-locals.el и т. Д., Вы можете использовать find-file-in-проект , который, на мой взгляд, является отличным решением этой проблемы.

0 голосов
/ 13 октября 2010

Я удивлен, что globalff не упоминается как один из приемлемых вариантов.Конечно, для этого требуется команда locate, но она довольно быстрая и полезная, когда вы не можете вспомнить точное имя.

0 голосов
/ 30 сентября 2010

Mx find-dired RET

, тогда у вас есть буфер с данными, возвращающий файлы, возвращенные функцией findВы можете использовать классическую команду Dired для открытия / перемещения / переименования ... файлов и каталогов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...