Когда я использую bower
в M-x shell
, как вы можете видеть на картинке, отображается какой-то мусорный код.
Однако M-x ansi-term
работает хорошо
В чем может быть проблема ? Можно ли сделать так, чтобы режим оболочки отображался правильно?
Когда я использую bower
в M-x shell
, как вы можете видеть на картинке, отображается какой-то мусорный код.
Однако M-x ansi-term
работает хорошо
В чем может быть проблема ? Можно ли сделать так, чтобы режим оболочки отображался правильно?
Эти символы представляют собой escape-последовательности ANSI, которые эмулятор терминала использует для визуальных эффектов, таких как изменение цвета текста. shell-mode явно не умеет отображать эти коды по умолчанию. Вам может понадобиться временный режим:
Некоторым программам (например, самому Emacs) необходимо детально управлять внешним видом экрана терминала. Они делают это путем выдачи специальных управляющих кодов. Term mode распознает и обрабатывает управляющие последовательности стандарта ANSI в стиле VT100, которые принимаются большинством современных терминалов, включая xterm. (Следовательно, вы можете запускать Emacs внутри окна Emacs Term.)
term
вместо shell
, eshell
: ‹. Интересно, когда у Emacs будет оболочка One, которая просто работает?
- person Rangi Lin; 19.12.2013
Попробуйте решение, приведенное в Цвета ANSI огурца портят буфер компиляции emacs:
(require 'ansi-color)
(defun colorize-compilation-buffer ()
(toggle-read-only)
(ansi-color-apply-on-region (point-min) (point-max))
(toggle-read-only))
(add-hook 'compilation-filter-hook 'colorize-compilation-buffer)
это прекрасно работает для меня на emacs24.
ps: чтобы еще больше раскрасить вывод оболочки, с которым я люблю играть
M-x highlight-regexp RET a regexp, i.e. \[OK\] RET a color (make use of TAB to see choices)
or
(add-hook 'shell-mode-hook (lambda () (highlight-regexp "\\[OK\\]" "hi-green-b")))
и (add-hook 'shell-mode-hook (lambda () (goto-address-mode )))
, чтобы URL-адреса были кликабельными. Ищу то же самое для путей к файлам.
изменить: сделать пути к файлам интерактивными так же просто, как использовать compilation-shell-minor-mode
:)
edit2: мои источники: http://wikemacs.org/index.php/Shell
ansi-color-apply-on-region
доза не работает, и мой режим оболочки уже может правильно отображать цвета ANSI.
- person Rangi Lin; 19.12.2013
WRT в bash, иногда здесь помогает установка $ PAGER, т.е.
ПЕЙДЖЕР = кошка