14

我使用 Emacs 24.2。我已经安装js-comintjs-modeMELPA执行run-js,现在在 REPL 而不是>sign 我有这个胡言乱语:

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

在 Inferior Javascript 模式下的 REPL 本身工作得很好,只是>符号被改变了。如果您输入未完成的表达式,它甚至会打印^[[1G... ^[[0K^[[5G. 这些^[是系统字符,不是通过复制粘贴复制的,我添加它们以供您参考。

在我的初始化文件中:

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

在终端调用nodejs产生工作 REPL。

为什么prompt会有这种行为?我应该怎么做才能纠正这个?

4

3 回答 3

19

只需在 .emacs 中添加一行:

(setenv "NODE_NO_READLINE" "1")

答案来自这篇文章: Node.js prompt '>' can not show in eshell

于 2013-05-19T08:07:27.963 回答
18
(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是它打印为的转义字符^[

于 2012-12-13T15:19:24.477 回答
2

不确定最近的时间,但现在可以下载和使用nodejs-repl.

于 2014-02-15T21:25:43.653 回答