Elisp 在将缓冲区写入文件时抑制 "Select coding system"

Elisp suppress "Select coding system" when write buffer to file

我写我的函数。在此函数中,我将一些数据插入缓冲区,然后将此缓冲区写入文件。这是我的代码片段:

          (set-buffer my-buffer-name)
          (set-language-environment "UTF-8")
          (setq make-backup-files nil)
          (write-file (expand-file-name my-file-name my-current-dir))
          (kill-buffer)

但是每次尝试写入文件时,elisp提示:

Select 编码系统(默认原始文本)

如何设置编码系统(例如 utf-8)在 运行 我的函数时不每次都提示我? 谢谢

您应该设置 coding-system-for-write,或 buffer-file-coding-system 而不是使用 set-language-environment.

PS。一般来说,你应该使用尽可能低级的功能 您的代码(例如,next-line 的帮助明确建议使用 forward-line 在代码中代替)。

在你的情况下,你可能想使用 basic-save-buffer 甚至 write-region 相反。

PPS。您可能应该使用 with-current-buffer 而不是 set-buffer