Наборы файлов Emacs: как запускать другие команды (elisp, а не shell)? - PullRequest
3 голосов
/ 16 августа 2011

Существует 5 команд Elisp, которые можно запустить в наборе файлов Emacs, плюс возможность запуска любой команды оболочки. Как насчет всех других команд Emacs? Просто чтобы привести один пример, было бы неплохо иметь возможность запускать M-x в наборе файлов.

Я знаю, что можно пометить несколько файлов в dired, а затем запустить на них любую команду Emacs (это правда, или я запутался в командах оболочки?), Но было бы очень удобно определить набор файлов один раз, а затем возможность использовать его как один файл для всех видов редактирования текста.

Спасибо за любой совет

Ответы [ 4 ]

2 голосов
/ 16 августа 2011

Команды, которые могут работать с наборами файлов, указываются в глобальной настраиваемой переменной «наборы-команд». Вы можете добавить свои собственные команды в этот список. Значение по умолчанию для этой переменной:

("Isearch" multi-isearch-files
  (filesets-cmd-isearch-getargs))
 ("Isearch (regexp)" multi-isearch-files-regexp
  (filesets-cmd-isearch-getargs))
 ("Query Replace" perform-replace
  (filesets-cmd-query-replace-getargs))
 ("Query Replace (regexp)" perform-replace
  (filesets-cmd-query-replace-regexp-getargs))
 ("Grep <<selection>>" "grep"
  ("-n " filesets-get-quoted-selection " " "<<file-name>>"))
 ("Run Shell Command" filesets-cmd-shell-command
  (filesets-cmd-shell-command-getargs)))

Значения состоят из списка ассоциаций имен, функций и списка аргументов (или функции, возвращающей единицу) для запуска в файлах наборов файлов. Итак, если вы хотите добавить команду, которая выполняет команду «происходить» в наборе файлов, вы можете использовать запись «Поиск» в качестве примера для создания своей новой новой записи (которую вы добавили бы в «наборы команд-команд»). глобальная переменная), которая будет выглядеть примерно так:

 ("Occur (regexp)" multi-occur-files-regexp
  (filesets-cmd-occur-getargs))

Вам нужно написать функции "multi-Встречаются-файлы-регулярные выражения" и "filesets-cmd-произойти-getargs" (вы можете использовать существующие "multi-isearch-files-regexp" и "filesets-cmd-"). isearch-getargs "функционирует как основа, так как они будут похожи). То же самое относится и к любой дополнительной команде Emacs, которую вы хотите добавить для работы с наборами файлов.

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

Dired имеет несколько операций над наборами файлов. Например, dired-do-search (привязано к A), где вы можете перемещаться по результатам поиска по нескольким файлам с помощью M-,, как и с tags-search. Точно так же вы можете запросить-заменить в тегированных файлах (с Q).

Последние посты на irreal.org описывают некоторые приятные функции.

0 голосов
/ 10 сентября 2011

Dired + имеет команду diredp-fileset, которая открывает Dired в наборе файлов Emacs. Вас попросят использовать набор файлов.

0 голосов
/ 19 августа 2011

С Сосульками вы можете использовать наборы файлов для всего, что вам захочется сделать с набором файлов и каталогов.И вы можете создать набор файлов из любого набора имен файлов и каталогов в буфере Завершения во время завершения.И вы можете использовать подстроку и регулярное выражение во время завершения, чтобы получить такой набор имен файлов в Завершения .

Эти ссылки могут помочь:

http://www.emacswiki.org/emacs/Icicles_-_Persistent_Completions#Filesets

http://www.emacswiki.org/emacs/Icicles_-_Dired_Enhancements#OpenDiredOnSavedFiles

http://www.emacswiki.org/emacs/Icicles_-_Dired_Enhancements#MarkedFilesAsProject

http://www.emacswiki.org/emacs/Icicles_-_Customization_and_General_Tips#icicle-filesets-as-saved-completion-sets-flag

...