Экран GNU в режиме оболочки EMACS: как исправить цветные коды побега

StackOverflow https://stackoverflow.com/questions/4689822

  •  11-10-2019
  •  | 
  •  

Вопрос

Я хотел бы прикрепить экран или tmux внутри Emacs, в режиме оболочки. Я часто запускаю EMACS с низкими процессами на экране на удаленных серверах; Было бы неплохо, если бы я мог перенести рабочий процесс на локальный бродяга EMACS +; Однако способность переехать постоянные сессии является обязательной. (Такой рабочий процесс особенно полезен для анализа в R [1])

Режим Shell довольно желательна, потому что я продолжаю сталкиваться с разными глюками и даже сбоев при использовании комбинации MX-термина или MX ANSI-TERM + Screen + R. Однако я не могу избавиться от окрашенного в ANSI как коды побега в экран при запуске под оболочкой MX. Когда я использую ansi-color-for-comint-mode-on, Они в порядке - но как только наступит экран, он становится ужасным беспорядком.

Кто -нибудь выяснил набор условий для правильной интерпретации цвета ANSI с Shell + Screen или Tmux? Как насчет того, чтобы вообще избавиться от цвета?

[1] http://blog.nguyenvq.com/2010/07/11/using-r-ess-remote-with-creen-in-emacs/

Это было полезно?

Решение

Насколько я могу судить, экран требует функций вашего терминала, что режим оболочки Emacs просто не имеет и не может предоставить, просто потому, что это не традиционный терминал символов, такой как VT100. Таким образом, проблема не в том, чтобы избавиться или пытаться интерпретировать цветные коды - существует больше возможностей терминала, которые экрана требует для правильного функционирования.

По умолчанию экран даже не запускается в режиме оболочки Emacs, насколько я могу судить (он ошибки, говоря, что ему нужна чистая возможность экрана). Некоторые посты вокруг Интернета, кажется, предлагают установить термин = xterm, чтобы обойти это, но это просто дурачный экран, чтобы думать, что терминал имеет возможности XTerm, которых у него нет.

Термин и режимы EMACS ANSI-термины предоставили бы возможности терминала, необходимые для экрана, но, к сожалению, у вас возникли проблемы с этими режимами.

Вместо этого я бы предложил взглянуть на команду «emacclient -t» (часть EMACS), которая позволяет вам открывать локальную кадр, подключенную к существующему экземпляру EMACS таким же образом, как и экран ранее созданный экземпляр экрана. Таким образом, вы могли бы настроить EmacsClient на вашем локальном компьютере, чтобы воссоединиться через TCP к постоянному удаленному экземпляру EMACS.

Другие советы

Я не использую экран, но, возможно, вы сможете исправить это из своего .bashrc. У меня есть куча условного кода, включив цвет для XERM Windows, но оставляя его для других терминалов, которые не поддерживают его. MX Shell устанавливает переменную термина на тупой, поэтому вы можете проверить это и установить цвет соответственно.

case "$TERM" in
dumb)
## non-color settings here
;;
xterm)
## color settings here
;;
*)
## default (maybe you want non-color here?)
;;
esac
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top