在Emacs中用JS-comint使用Node.js

我使用Emacs 24.2。 我已经从MELPA安装js-comintjs-mode ,执行run-js ,现在在REPL而不是> sign我有这个乱码:

 ^[[1G> ^[[0K^[[3G 

REPL本身在Inferior Javascript模式下工作得很好,只是>符号被改变了。 如果input未完成的expression式,它甚至会打印^[[1G... ^[[0K^[[5G^[是系统字符,不复制复制粘贴,我添加它们让你有一个想法。

在我的init文件中:

 (require 'js-comint) (setq inferior-js-program-command "nodejs") 

在terminal调用nodejs产生工作REPL。

为什么要以这种方式行事? 我该怎么做才能纠正这个问题?

 (setq inferior-js-mode-hook (lambda () ;; We like nice colors (ansi-color-for-comint-mode-on) ;; Deal with some prompt nonsense (add-to-list 'comint-preoutput-filter-functions (lambda (output) (replace-regexp-in-string "\033\\[[0-9]+[GK]" "" output))))) 

\033是打印为^[的转义字符。

只需在您的.emacs中添加一行:

 (setenv "NODE_NO_READLINE" "1") 

来自这篇文章的答案: Node.js提示'>'不能在eshell中显示

不知道有多近,但是现在可以下载并使用nodejs-repl