在某些文件中,特别是.rb我有一个问题,即emacs强迫我拥有以下编码行。
# -*- coding: utf-8 -*-
即使我删除了该行,也会在保存文件后再次写入。
是否可以禁用此功能?
答案 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?
答案 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 年,升级应该可以解决问题。