Snap Open для Emacs? - PullRequest
       6

Snap Open для Emacs?

2 голосов
/ 05 октября 2009

Мне нужен скрипт, который будет искать и открывать файлы по заданному шаблону в текущем каталоге и его подкаталогах, вроде Snap Open для GEdit, fuzzyfinder для VIM и TextMate Open Files.

есть идеи?

Ответы [ 6 ]

5 голосов
/ 06 октября 2009

Вы можете сделать это и в стандартном режиме.

Сначала сделай

C-u s

, что позволит вам изменить команду dired ls на -lR . Теперь у вас будут подкаталоги в буфере Dired.

% m 

Давайте отметим все файлы, соответствующие регулярному выражению.

Чтобы открыть файлы, используйте команду

`dired-do-find-marked-files'

вам нужно (требуется 'dired-x) для этого.

3 голосов
/ 06 октября 2009

не удовлетворяет всем вашим требованиям, но один очень простой способ открыть несколько файлов - использовать шаблоны глобуса при открытии файла (C-x C-f), например ~/prj/*/*.[hc].

3 голосов
/ 05 октября 2009

Не будучи знакомым ни с одной из упомянутых библиотек, я не знаю, является ли это точным ответом, но похоже, что ido-mode выполнит хотя бы кое-что из того, о чем вы просили, и в комплекте с Emacs начиная с версии 22. Ido изменяет способ работы стандартных комбинаций клавиш Emacs find-file и find-buffer, предоставляя списки завершений для введенных вами строк и используя клавишу Enter, чтобы принять текущий выбор (который может быть каталогом, позволяя вам просмотреть структуру каталогов из минибуфера). Посетите страницу Ido EmacsWiki для получения подробной информации.

1 голос
/ 05 октября 2009

Не совсем то, что вы просите, но закрытие - ifind.el. Чтобы найти все файлы с frog в имени и суффиксом .el:

M-x ifind /some/path/*frog*.el

Это делает поиск по всем подкаталогам в /some/path.

Он не откроет все файлы автоматически, но вместо этого откроет буфер *compilation*, который позволит вам открыть их, либо щелкнув по файлам, либо выполнив M-x next-error (иначе «Cx` »). 1014 *

Эта процедура откроет каждый из результатов поиска:

(defun visit-all-ifind-results ()
  "do next-error until there are no more"
  (interactive)
  (condition-case nil
      (while t
        (next-error))
    (error nil)))

Итак, с этим вы можете просто продолжить с M-x visit-all-ifind-results.

0 голосов
/ 07 октября 2009

Вы можете попробовать режим ido. Прочитайте следующее для получения дополнительной информации.

Идо на emacswiki

0 голосов
/ 07 октября 2009

Вам придется написать это самостоятельно.

Иногда мне нравится открывать все соответствующие файлы в проекте; для этого я использую команду eproject * eproject-open-all-project-files.

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