Использование Node.js с JS-comint в Emacs
Я использую Emacs 24.2. Я установил js-comint
и js-mode
из MELPA, выполнил run-js
, а теперь в REPL вместо >
sign У меня эта тарабарщина:
^[[1G> ^[[0K^[[3G
Сам REPL в режиме Inferior Javascript работает нормально, только знак >
изменяется. Если вы введете незавершенное выражение, оно даже распечатает ^[[1G... ^[[0K^[[5G
. ^[
являются системными символами, которые не копируются с помощью copy-paste, я добавляю их для вас, чтобы иметь представление.
В моем init файле:
(require 'js-comint)
(setq inferior-js-program-command "nodejs")
В терминале, вызывающем nodejs
, создается рабочий REPL.
Почему запрос ведет себя таким образом? Что я должен сделать, чтобы исправить это?
Ответы
Ответ 1
(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
- символ escape, который он печатает как ^[
.
Ответ 2
Просто добавьте одну строку в ваш .emacs:
(setenv "NODE_NO_READLINE" "1")
Ответ из этого сообщения:
Node.js prompt ' > ' не может показать в eshell
Ответ 3
Не знаю, как недавно, но теперь можно скачать и использовать nodejs-repl
.