回答
如果您正在寻找纯 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 而学习 Lisp,我可以推荐Practical Common Lisp。您将能够使用 Elisp 完成令人惊讶的大量书籍。否则,请下载像SBCL这样的 Common Lisp 环境。