Por que o terminal não exibe novas linhas?

15

Por exemplo, quando eu digito o seguinte comando,

echo line | (cat >/dev/null; vi)

até embrulhado em outra concha,

sh -c 'echo line | (cat >/dev/null; vi)'

e retornou do Vim, agora não exibirá mais retorno de carro.

Como posso fazer para exibir novamente as novas linhas? (Sem saída.)

Xiè Jìléi
fonte
obrigatória switch-to-emacs observação :)
Dang Khoa

Respostas:

34

tente um ou ambos:

  • digite ctrl+c, digite resete pressione enter.
  • digite ctrl+c, digite stty sanee pressione enter.

o ctrl+cé para limpar quaisquer outros caracteres que você possa ter digitado na linha de comando.

resetou stty sanegeralmente conserta um terminal desarrumado. Leia a página de manual resete sttypara mais informações.

Observe que, se o terminal estiver bagunçado o suficiente, pode ser que isso não ocorra ctrl+cou enterfuncionará conforme o esperado. Ainda existem outros métodos para inserir caracteres, mas eles envolvem magia negra antiga. Nesse caso, geralmente é mais fácil fechar o terminal e iniciar outro.

Meu entendimento do funcionamento interno de um terminal não é profundo o suficiente para explicar por que ou como isso acontece.

lesmana
fonte
4

Não é o uso pretendido para vireceber informações do stdin.

De qualquer forma, você pode obter novas linhas novamente com

stty sane

sem reiniciar o terminal.

enzotib
fonte