De acordo com o wiki do Emacs, a configuração recomendada de TERM
para ansi-term é "eterm-color" . Essa descrição do terminal é fornecida por ncurses; você provavelmente teria que usar o pacote com o banco de dados terminfo completo para plataformas que fazem distinção, por exemplo, Debian com ncurses-base
e ncurses-term
.
A descrição eterm-color
fornece 16 cores, que ainda parecem ser o estado atual do código Emacs. Além disso, a descrição de xterm-256color
inclui as seqüências de escape que o Emacs não deve manipular corretamente. Usando infocmp
, existem vários recursos que diferem e podem produzir um problema no (a) movimento do cursor e (b) na rolagem. Aqui estão as linhas interessantes:
ech: NULL, '\E[%p1%dX'.
flash: NULL, '\E[?5h$<100/>\E[?5l'.
hpa: NULL, '\E[%i%p1%dG'.
hts: NULL, '\EH'.
indn: NULL, '\E[%p1%dS'
rin: NULL, '\E[%p1%dT'.
rmam: NULL, '\E[?7l'.
rmcup: NULL, '\E[?1049l'.
rmkx: NULL, '\E[?1l\E>'.
rmm: NULL, '\E[?1034l'
sitm: NULL, '\E[3m'.
smacs: NULL, '\E(0'.
smam: NULL, '\E[?7h'.
smcup: NULL, '\E[?1049h'.
smkx: NULL, '\E[?1h\E='.
smm: NULL, '\E[?1034h'.
tbc: NULL, '\E[3g'.
vpa: NULL, '\E[%i%p1%dd'.
Por exemplo:
-
hpa
, por exemplo, funciona no xterm para mover o cursor horizontalmente. -
smm
ermm
meta de controle (que é relevante para a menção de chaves "alt": veja a descrição de meta em terminfo (5) ). -
indn
erin
são usados para rolagem vertical
Quando os recursos do terminal e a descrição do terminal não estão de acordo, você pode ver coisas estranhas acontecendo. Em um teste rápido do Emacs 24.5, o ansi-term implementa nenhum desses recursos; todos provavelmente serão usados por programas em tela cheia, e alguns (como hpa
) seriam usados por programas de linha de comando.
Leitura adicional:
- AnsiTermHints (wiki do Emacs)
- Modificando cores de longo prazo no Emacs