text – 如何使用elisp处理一系列文件?

text – 如何使用elisp处理一系列文件?,第1张

概述我是编程的新手,所以请在这里忍受我… 我有一个名为“foo01.txt”,“foo02.txt”等文件的目录和一个名为MyFunction的函数.我想打开每个文件作为缓冲区,在其上运行MyFunction,将缓冲区写入其文件,终止缓冲区并继续执行系列中的下一个文件,直到完成所有文件. 我认为我需要做的所有部分都在Cookbook(http://emacswiki.org/emacs/ElispCo 我是编程的新手,所以请在这里忍受我…

我有一个名为“foo01.txt”,“foo02.txt”等文件的目录和一个名为MyFunction的函数.我想打开每个文件作为缓冲区,在其上运行MyFunction,将缓冲区写入其文件,终止缓冲区并继续执行系列中的下一个文件,直到完成所有文件.

我认为我需要做的所有部分都在Cookbook(http://emacswiki.org/emacs/ElispCookbook)中描述,但我并不是真的理解如何将它们放在一起.谢谢!

解决方法 回答

如果您正在寻找纯elisp的答案,您可以这样做:

(defun process-file (f)  (save-excursion     (find-file f)    (my-function)     ; Call your function here.    (write-file f)    (kill-buffer (current-buffer))))(defun process-files (dir)   (mapc 'process-file        (directory-files dir t ".txt$")))

process-files将遍历给定目录中的每个文件,并将process-file应用于所有.txt文件.你可以像这样调用它:

(process-files "~/target-directory")

您可以将其复制到* scratch *缓冲区中并使用各个部分.最有趣的功能是:

> mapc – 将函数应用于列表中的每个项目
> directory-files – 获取目录中的所有文件和文件夹,在这种情况下,检索所有.txt文件
> find-file – 在缓冲区中打开一个文件(这是键入C-x C-f时运行的文件)

学习lisp

如果您正在学习lisp,我可以推荐Practical Common Lisp.您将能够使用Elisp完成这本书的惊人数量.否则,请下载像SBCL这样的Common lisp环境.

总结

以上是内存溢出为你收集整理的text – 如何使用elisp处理一系列文件?全部内容,希望文章能够帮你解决text – 如何使用elisp处理一系列文件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1084371.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存