Por que o terminal não exibe novas linhas?

8

Por exemplo, quando digito o seguinte comando,

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

mesmo envolto em outra casca,

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

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

Como posso fazer para exibir novamente as novas linhas? (Sem sair).

    
por Xiè Jìléi 21.08.2011 / 05:32

2 respostas

18

experimente um ou ambos:

  • digite ctrl+c , digite reset e, em seguida, pressione enter .
  • digite ctrl+c , digite stty sane e, em seguida, pressione enter .

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

reset ou stty sane geralmente conserta um terminal confuso. Leia a página do manual de reset e stty para obter mais informações.

Observe que, se o terminal estiver bagunçado o suficiente, talvez nem mesmo ctrl+c ou enter funcionem como esperado. Ainda existem outros métodos para inserir caracteres, mas eles envolvem magia negra antiga. Nesse caso, geralmente é mais fácil apenas 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.

    
por lesmana 21.08.2011 / 08:13
0

Não é o uso pretendido para vi receber entrada de stdin.

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

stty sane

sem reiniciar o terminal.

    
por enzotib 21.08.2011 / 08:15