Estou usando as versões padrão do bash e da tela no OS X Lion.
Quando estou em uma sessão de tela, volto pelo histórico do bash e chego a um comando que é longo o suficiente para ser quebrado.
Eu poderia primeiro digitar algum comando:
selassid@tem02:~$ ls ljmix/fiftyfifty_softsphere/T0.350/r2.43/0.565421311859c0.1
83279836214c0.144847759343/
Isso funciona corretamente, conforme descrito acima, mas se eu pressionar para acessá-lo através do histórico do bash, o console exibirá apenas:
83279836214c0.144847759343/
Portanto, o prompt e toda a primeira linha do comando estão ausentes, o que dificulta a edição; se eu voltar para a primeira linha, ela aparecerá, mas substituirá a última linha de saída. Quando executo o comando, o restante da primeira linha é exibido e tudo parece como o esperado:
selassid@tem02:~$ ls ljmix/fiftyfifty_softsphere/T0.350/r2.43/0.565421311859c0.1
83279836214c0.144847759343/
total 1792
...
selassid@tem02:~$
O mais curioso é que, se usar o histórico para acessar o comando longo, mas ainda não o executar, use qualquer C-a
comando de tela, como alternar para outra janela e depois voltar, ou se eu clicar na janela atual do terminal e de volta a ele, o comando history agora é exibido corretamente novamente.
Meu, PS1='\u@\h:\w$ '
então não há nada de estranho acontecendo lá.
Existe uma maneira de mostrar corretamente todo o comando ao usar o histórico? Tentei brincar com as configurações de quebra de tela, mas elas só pioram as coisas.
stty -a
mostra:
speed 9600 baud; 46 rows; 80 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
-echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
-extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel iutf8
-ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
-dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
stop = ^S; susp = ^Z; time = 0; werase = ^W;
fonte
TERM
éxterm-256color
etput am; echo $?
apenas me dá 0. #stty -a
?Respostas:
Com base na resposta ao comentário acima, parece que você está substituindo TERM em um dos scripts de inicialização. Enquanto estiver dentro da tela, seu TERM deve ser definido como 'tela', não 'xterm-256color'.
Eu examinaria seus scripts de inicialização do shell. ~ / .bashrc, / etc / bash / bashrc e possivelmente outros como ~ / .bash_profile e / etc / profile, dependendo de como você configurou tudo. Se você vir alguma configuração de TERM = "...", será necessário removê-la.
fonte