Using Node.js with JS-comint in Emacs

2019-01-17 22:24发布

I use Emacs 24.2. I've installed js-comint and js-mode from MELPA, executed run-js, and now in REPL instead of > sign i have this gibberish:

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

The REPL itself in Inferior Javascript mode works just fine, just the > sign is changed. If you enter unfinished expression, it even prints ^[[1G... ^[[0K^[[5G. The ^[ are system characters, that are not copied with copy-paste, i add them for you to have an idea.

In my init-file:

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

In terminal calling nodejs produces working REPL.

Why prompt behaves this way? What should i do to correct this?

3条回答
甜甜的少女心
2楼-- · 2019-01-17 22:45

Not sure how recent, but now one can download and use the nodejs-repl.

查看更多
我只想做你的唯一
3楼-- · 2019-01-17 22:57

Just add one line in your .emacs:

(setenv "NODE_NO_READLINE" "1")

Answer come from this post: Node.js prompt '>' can not show in eshell

查看更多
对你真心纯属浪费
4楼-- · 2019-01-17 22:59
(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 is the escape character it prints as ^[.

查看更多
登录 后发表回答