modo shell do emacs (shell M-x)

4

Quando estou usando o modo shell do emacs Mx, vejo caracteres estranhos na minha tela, que acredito estarem relacionados ao meu prompt (que inclui um End-Of-Line) e ao uso de cores.

Então, aqui está o que eu vejo no terminal:

mperdikeas@thorin:~#
$ 

E aqui está o que eu vejo dentro do buffer shell do Emacs:

^[]0;mperdikeas@thorin: ~^Gmperdikeas@thorin:~#
$  

Aqui está a seção relativa do meu .bashrc :

if [ "$color_prompt" = yes ]; then
  PS1='${debian_chroot:+($debian_chroot)}\[3[1;32m\]\u@\h\[3[00m\]:\[3[1;33m\]\w\[3[00m\]#\n$'
else
  PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w#\n$ '
fi 

Como posso configurar o emacs para exibir corretamente o prompt no buffer shell ?

    
por Marcus Junius Brutus 19.01.2013 / 16:08

3 respostas

0

Continuando com a resposta de DaveEmme aqui está o que eu finalmente coloquei em .bashrc para manter as coisas simples:

case "$EMACS" in
    t)
    PROMPT_COMMAND=
    PS1="[\u@\h:\w]$ "
esac

Confiar no valor de $TERM não funcionou no meu caso, enquanto o Emacs é necessário para definir a variável de ambiente $ EMACS para verdadeiro para qualquer projétil gerado.

    
por 24.12.2014 / 13:37
7

Há provavelmente uma solução mais elegante, mas isso funciona para mim. Depois de qualquer linha relacionada ao prompt no .bashrc, insira o seguinte, ajustando o valor do PS1 para se adequar:

# Keep it simple if running in emacs.
case "$TERM" in
  dumb)
    PROMPT_COMMAND=
    PS1="\u@\h:\W$ "
esac
    
por 19.01.2013 / 19:37
2

Acho que é melhor ativar o ansi-color nas configurações do modo de shell.

 (eval-after-load 'shell
   '(progn
      (autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t)
      (add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on t)
      t))
    
por 28.05.2013 / 07:49

Tags