我知道可以在dired中标记多个文件,然后在它们上面运行任何Emacs命令(是这样吗,还是我弄混了shell命令?),但是定义一个文件集然后像一个单一文件一样用于各种文本编辑会非常方便。
感谢任何建议。
可以对文件集进行操作的命令在全局自定义变量“filesets-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)))
这些值由名称、函数和参数列表(或返回一个参数列表的函数)的关联列表组成,用于对文件集中的文件运行。因此,如果您想添加一个在文件集上执行“occur”命令的命令,可以使用“Isearch”条目作为示例来创建自己的新条目(将其添加到“filesets-commands”全局变量中),它看起来可能像:
("Occur (regexp)" multi-occur-files-regexp
(filesets-cmd-occur-getargs))
dired-do-search
(绑定到A
),您可以使用M-,
在几个文件的搜索结果中导航,就像使用tags-search
一样。类似地,您可以在标记文件中进行查询替换(使用Q
)。
irreal.org上的最近帖子描述了一些不错的Dired功能。使用Icicles,您可以对文件和目录集合执行任何操作。并且您可以在完成时从缓冲区Completions中的任何文件和目录名称创建一个文件集合。您还可以在完成过程中使用子字符串和正则表达式匹配来获取Completions中的文件名集合。
以下链接可能会有所帮助:
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
Dired+有一个名为diredp-fileset
的命令,它可以在Emacs文件集上打开Dired。您将被提示选择要使用的文件集。
filesets.el
不在您的load-path
中。命令diredp-fileset
需要该库--命令执行的第一件事就是尝试加载该库。如果找不到它,则会引发您看到的错误。Emacs 22及更高版本附带了filesets.el
。否则,您可能可以在Google上搜索它,但您可能需要找出它是否与您的Emacs版本兼容。另请参阅filesets+.el,它修复了filesets.el
中的一些限制。 - Drewfilesets-data
是 nil
。如果是这种情况,最好有一个不同的诊断消息。最好的问候,Tobias - Tobias