【问题标题】:Elisp suppress "Select coding system" when write buffer to fileElisp 在将缓冲区写入文件时抑制“选择编码系统”
【发布时间】:2016-12-22 23:10:09
【问题描述】:

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

          (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提示:

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

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

【问题讨论】:

  • save-buffer-coding-systembuffer-file-coding-system 是什么?

标签: emacs elisp


【解决方案1】:

你应该设置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

【讨论】:

  • "coding-system-for-write" - 它的工作。谢谢。问:我如何理解一个函数比另一个函数是最低级的?
  • C-h f 会给你*Help* 缓冲区;阅读文档,然后单击源文件名并查看defun。一开始可能会令人生畏,但随着您的学习,您会发现它越来越有启发性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-03
  • 2012-11-18
  • 1970-01-01
  • 1970-01-01
  • 2020-02-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多