在Emacs中用JS-comint使用Node.js
我使用Emacs 24.2。 我已经从MELPA安装js-comint
和js-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
。