Uso estranho do terminal / VIM do ssh via Mac OSX

0

Estou usando o terminal de um Mac OS X 10.10 (Yosemite) e SSH em uma máquina fedora e estou tendo alguns problemas estranhos com o terminal:

  1. Quando eu :q do vim, o conteúdo da tela do vim ainda está lá. Quando eu :q no meu mac ou mesmo a partir da tela do desktop na minha máquina do Fedora, quando eu :q um arquivo vim, a tela vim desaparece e eu volto para o terminal (ou seja, eu volto para o comando prompt onde a linha anterior é simples $vim <whatever_file_I_edited>.txt ao passo que agora, não consigo ver a linha anterior porque ainda vejo o conteúdo do arquivo que estava editando via vim.

  2. Quando eu uso o recurso de rolagem para cima / rolagem para baixo no trackpad, ele rola as entradas anteriores para o terminal, e não o comprimento da própria janela do terminal.

Como posso corrigir esses problemas?

    
por drjrm3 29.01.2015 / 17:10

2 respostas

0

Você realmente não tem "problemas" além de se sentir muito à vontade com um xterm e incorretamente esperar que seja universal.

Emuladores de terminal xterm e GUI como ele, como gnome-terminal, lxterminal, konsole e assim por diante, implementam o que é conhecido como "buffer alternativo de tela". Com uma seqüência de controle, os programas podem alternar o emulador de terminal para exibir e gravar nesse buffer. Com outro, eles podem voltar para o buffer de tela original. Programas como vim (e less ) emitem a primeira sequência de controle quando são inicializados / retomados e os segundos quando são desligados / suspensos. Isso dá o efeito de restaurar o conteúdo da tela anterior quando vim termina.

Isso não é um dado.

Nem todos os terminais e emuladores de terminal têm um buffer de tela alternativo. O emulador de terminal embutido no kernel do seu sistema operacional não. Se você tivesse executado vim em um terminal virtual do kernel, você teria visto esse mesmo comportamento. Terminais reais geralmente não. (Os terminais reais da família DEC VT, por exemplo, têm um mecanismo que envolve "páginas" que não são as mesmas e que são acionadas por um conjunto diferente de seqüências de controle.)

Mesmo que seu terminal tenha um, você deve garantir que a entrada termcap / terminfo para o tipo de terminal atual tenha as informações apropriadas, informando aos programas da TUI como nano e Midnight Commander quais seqüências de controle devem ser emitidas para mostrar e ocultar buffer de tela. Essa é uma combinação de escolha (e configuração) de um valor de variável de ambiente TERM apropriado para selecionar uma entrada do banco de dados termcap / terminfo do Fedora que corresponda aos recursos do emulador de terminal local do MacOS 10 e talvez até mesmo editar esse banco de dados.

Exatamente o que você define como TERM não é uma resposta fixa, já que depende da emulação que você configurou o programa terminal do MacOS 10 para fornecer. Para isso, você simplesmente terá que analisar suas configurações. Se você disse para emular o xterm no modo de 256 cores, então você terá que escolher um tipo de terminal (muito provável xterm-256color ) que descreva isso no banco de dados terminfo do Fedora.

Leitura adicional

por 29.01.2015 / 23:47
0

Por alguma razão, o Vim on Mavericks não vem configurado com um esquema de cores. Depois de adicionar algumas linhas ao arquivo vimrc (copiar e colar de um site), ele começou a se comportar como você descreve, no meu caso, excluindo espaços em branco extras depois que cada instrução foi corrigida.

    
por 28.02.2015 / 05:49