lxterminal solicita caracteres indesejados

1

Estou na nova instalação do Lubuntu 14.04. Estou usando o LXTerminal e este é o prompt que estou configurando através do arquivo .bashrc:

export PS1="\e[0;36m$ \w \e[m"

Suponha que eu digite um comando de até 15 caracteres (e execute para que ele seja registrado no histórico) (não importa o "comando não encontrado"):

$ ~ 012345678901234
012345678901234: command not found

Agora, se eu pressionar a seta para cima, recebo meu comando de volta:

$ ~ 012345678901234

E se eu pressionar a seta para baixo, volto ao prompt:

$ ~ 

O PROBLEMA O problema começa se eu tiver 16 ou mais caracteres para executar:

$ ~ 0123456789012345
0123456789012345: command not found

Agora, quando eu pressiono a seta para cima, sou apresentado com o comando anterior bem:

$ ~ 0123456789012345

Pressionar a seta para baixo não me traz de volta ao prompt, ele de alguma forma memoriza 10 caracteres do primeiro comando de mais de 16 caracteres no meu histórico e o exibe até que qualquer outra coisa seja executada. Ele basicamente se torna meu prompt padrão por enquanto.

$ ~ 0123456789

Agora posso pressionar voltar para me livrar dele, ou posso executar qualquer outro comando. Por exemplo, isto:

$ ~ 0123456789ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos

O que posso fazer para corrigir isso? Não é tão grande assim, mas é muito chato.

    
por gwaramadze 03.05.2014 / 13:56

1 resposta

2

Você precisa agrupar os códigos de cores em \[ e \]

PS1='\[\e[0;36m\]$ \w \[\e[m\]'

Além disso, o PS1 é relevante apenas para o seu shell interativo, você não precisa exportá-lo para processos filho.

    
por glenn jackman 03.05.2014 / 14:07