Я обнаружил, что терминал emacs не отображает правильные цвета, если я явно не установил TERM = xterm-256color. Я использую gnome-terminal и, насколько я понимаю, TERM должен быть установлен в gnome-256color. Аналогично, я очень часто использую tmux, который советует использовать любую настройку TERM, отличную от screen-256color. К сожалению, обе эти настройки (в их соответствующем контексте - gnome-terminal
или tmux
) приводят к тому, что emacs имеют неправильные цвета, тогда как vim отображает цвета правильно. Однако, если я export TERM=xterm-256color
, цвета работают нормально в emacs.
Может кто-нибудь объяснить, что происходит или предложить решение?
Update
Вот что я имею в виду:
Я могу заставить цвета выглядеть корректно в терминале, добавив следующее к моему init.el
:
(defun terminal-init-gnome ()
"Terminal initialization function for gnome-terminal."
;; This is a dirty hack that I accidentally stumbled across:
;; initializing "rxvt" first and _then_ "xterm" seems
;; to make the colors work... although I have no idea why.
(tty-run-terminal-initialization (selected-frame) "rxvt")
(tty-run-terminal-initialization (selected-frame) "xterm"))
Это действительно действительно, действительно неправильно. Для этого должно быть логическое объяснение...
P.S.
У меня очень мало знаний о terminfo и точной роли, которую $TERM
играет в процессе поведения цветового терминала. Если вы всегда можете использовать xterm-256color
(даже если $TERM
"должно быть gnome-256color
или screen-256color
), я пойду с этим.