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

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

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

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

4 ответа

Решение

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

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

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

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

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

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

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

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

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

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

http://www.emacswiki.org/emacs/Icicles_-_Customization_and_General_Tips

Другие вопросы по тегам