Emacs Can';Don’别把滑稽的角色弄得一团糟

Emacs Can';Don’别把滑稽的角色弄得一团糟,emacs,unicode,clojure,slime,swank-clojure,Emacs,Unicode,Clojure,Slime,Swank Clojure,尽管我在所有地方都设置了UTF-8(在我的lein项目中,slime lisp组自定义,Emacs缓冲区本身…),但在尝试运行(def beta“β”)等代码时,我总是会遇到这个错误: 仅在Emacs中发生,例如,从命令行运行lein repl时不会发生 是什么引起的?如果有什么不同的话,我正在使用Ubuntu。您的.emacs中应该有以下代码: (setq slime-net-coding-system 'utf-8-unix) 当您运行lein-swank(或将swank.encoding

尽管我在所有地方都设置了UTF-8(在我的
lein
项目中,
slime lisp
组自定义,Emacs缓冲区本身…),但在尝试运行
(def beta“β”)
等代码时,我总是会遇到这个错误:

仅在Emacs中发生,例如,从命令行运行
lein repl
时不会发生


是什么引起的?如果有什么不同的话,我正在使用Ubuntu。

您的
.emacs
中应该有以下代码:

(setq slime-net-coding-system 'utf-8-unix)
当您运行
lein-swank
(或将
swank.encoding
Java系统属性设置为
utf-8
)时,请遵循
project.clj


顺便说一句.clj文件是否指定了每个.clj文件都必须使用的字符编码?例如,Google的Go语言规范规定,每个源代码文件都必须是UTF-8,而Java没有指定任何内容(您可以使用UTF-8或ISO-8859-1或您想要的.Java源代码文件)。那么.clj文件呢?内置的
加载文件
fn会发出任何声音,所以我不这么认为……所有的.clj文件都必须是UTF-8格式。不幸的是,这并没有在任何地方记录下来,但它是硬编码到编译器中的:@vemv:SLIME的默认设置采用公共Lisp,而公共Lisp具有不同的默认编码传统。如果您使用clojure插件,它会自动将编码设置为utf-8-unix(因为它知道您正在使用clojure),但是如果您使用“香草粘液”,您必须自己配置它。雷克:酷,很好的发现!我不使用
clojure-jack-in
,而是使用普通
slime-connect
。这样做的好处是每次都不会创建swank流程。因此,我在操作系统启动时只启动了一个swank实例,因此连接只需10秒(在我的机器上)。
:编码“utf-8”
对我来说是不同的;我使用的是
:jvm选项[“-Dfile.encoding=utf-8”]
。非常感谢。
(setq slime-net-coding-system 'utf-8-unix)
:encoding "utf-8"