Emacs文件集:如何运行其他(elisp,而不是shell)命令



可以在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。提示您使用文件集

相关内容

  • 没有找到相关文章

最新更新