可以在Emacs文件集上运行5个Elisp命令,还可以运行任何shell命令。那么其他Emacs命令呢?举个例子,如果能在文件集上运行M-x,那就太好了。
我知道可以在dired中标记几个文件,然后在它们上运行任何Emacs命令(这是真的吗,还是我与shell命令混淆了?),但是定义一个文件集一次,然后能够像使用一个文件一样使用它来进行各种文本编辑,这将是非常方便的。
谢谢你的建议
可以操作文件集的命令在全局自定义变量" filessets -commands"中指定。您可以将自己的命令添加到该列表中。这个变量的默认值是:
("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)))
值由名称、函数和参数列表(或返回参数列表的函数)的关联列表组成,这些参数列表将在文件集的文件上运行。因此,如果您想添加一个在文件集上执行"发生"命令的命令,您可以使用"issearch"条目作为示例来创建您自己的新条目(将其添加到"filessets -commands"全局变量中),该条目看起来类似于:
("Occur (regexp)" multi-occur-files-regexp
(filesets-cmd-occur-getargs))
您需要编写"multi- occurrence -files-regexp"one_answers"filessets -cmd- occurrence -getargs"函数(您可以使用现有的"multi- issearch -files-regexp"one_answers"filessets -cmd- issearch -getargs"函数作为基础,因为它们是相似的)。这同样适用于您想要添加的用于文件集的任何其他Emacs命令。
Dired对文件集有几个操作。一个例子是dired-do-search
(绑定到A
),您可以像使用tags-search
一样使用M-,
浏览多个文件的搜索结果。类似地,您可以在标记文件中进行查询替换(使用Q
)。
最近在irreal.org上的帖子描述了一些不错的dired功能。
使用Icicles,您可以使用文件集来处理您可能想要处理的一组文件和目录。您可以在补全期间从缓冲区Completions中的任意文件和目录名称集创建一个文件集。您可以在完成过程中使用子字符串和regexp匹配来在Completions中获得这样一组文件名。
这些链接可能有帮助:
http://www.emacswiki.org/emacs/Icicles_-_Persistent_Completions文件集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
Dired+
有命令 diredp-fileset
,在Emacs文件集上打开Dired。提示您使用文件集