如何防止emacs在第一行添加编码信息?

时间:2011-06-23 12:26:16

标签: emacs encoding

在某些文件中,特别是.rb我有一个问题,即emacs强迫我拥有以下编码行。

# -*- coding: utf-8 -*-

即使我删除了该行,也会在保存文件后再次写入。

是否可以禁用此功能?

3 个答案:

答案 0 :(得分:67)

看起来这是emacs中ruby模式的一部分。

我找到了一篇文章的链接,该文章介绍了如何编辑ruby-mode.el文件。不确定它是否有效,但对该文章的评论可能会更好:

(setq ruby-insert-encoding-magic-comment nil)

如果您使用enh-ruby-mode而不是使用ruby-mode,则应设置此变量:

(setq enh-ruby-add-encoding-comment-on-save nil)

链接:

Fix: Emacs/Aquamacs keeps adding encoding comments to my files

此外,半相关的问题,但Michael Kohl的相关答案:How can I avoid putting the magic encoding comment on top of every UTF-8 file in Ruby 1.9?

Enh-ruby-mode comment encoding line

答案 1 :(得分:0)

如果您已将代码从Internet复制/粘贴到Emacs缓冲区中,则实际上可能包含非ASCII字符。 # -*- coding: utf-8 -*-是Emacs告诉您它不能简单地将文件编码为ASCII的方式。扫描代码中的潜在违规字符(在我的情况下,它是从http://matteomelani.wordpress.com/2011/10/17/authentication-for-mobile-devices/复制的“智能引号”。当然,Ruby会对它们进行禁止。

答案 2 :(得分:0)

这是 Emacs 28 not to write this line if the encoding is UTF-8 中的默认行为。

在撰写本文时,Emacs 28 尚未发布,但是,当发布时,也许在 2022 年,升级应该可以解决问题。