Como deixar o shell retornar à linha anterior após sair de um processo de tela inteira como o Vim

2

Eu me conecto ao Z-Shell em uma máquina Red Hat Enterprise Linux 6.2 via Putty . Depois que eu saio de um processo de tela inteira, por exemplo, Vim e menos, no shell do Unix, o prompt do shell começa na última linha da tela. A tela acima ainda mostra o contexto desse processo, então eu perdi todas as coisas que o shell mostrou antes de abrir o processo.

Isso não acontece na minha própria caixa do Ubuntu, onde depois de sair de um processo, eu volto para a linha abaixo do último comando que eu digitei.

Quais opções posso mudar (talvez em zshrc ?) para fazê-lo se comportar como minha caixa Ubuntu?

    
por Wei Shi 22.01.2012 / 06:17

3 respostas

1

Eu também vi esse problema. Verifique suas configurações do PuTTY em Recursos do Terminal- & gt ;. Se a opção "Desativar alternar para a tela do terminal alternativo" estiver marcada, desmarque-a. (Todas as minhas configurações nessa página estão desmarcadas.) A ajuda para essa opção parece promissora.

Se isso não der certo, esta página que encontrei pesquisando pode lhe dar algumas ideias. Você pode ser capaz de definir algumas coisas terminográficas para que funcione corretamente.

    
por 22.01.2012 / 09:41
1

Depois de corrigir esse problema há muito tempo, me deparei com um problema semelhante, no qual o Vim não tinha esse problema, mas less fez isso. Isso afetou todos os programas que usam less também, como man . A causa, descobri, foi a variável de ambiente LESS , que lista os argumentos para serem transmitidos automaticamente para less sempre que for invocada. A opção dentro de LESS que causou isso foi -X :

-X or --no-init

Disables sending the termcap initialization and deinitialization strings to the terminal. This is sometimes desirable if the deinitialization string does something unnecessary, like clearing the screen.

Eu também aprendi com Unix & Linux - " less --quit-if-one-screen without --no-init " que, se você desativar -X / --no-init , deverá desativar -F / --quit-if-one-screen também (se tiver definido).

Para corrigir less para que sempre restaure sua tela ao sair, altere o valor de LESS no arquivo de inicialização do shell apropriado. Isso será .bashrc para Bash, .zshenv para Zsh e .config/fish/config.fish para Fish. Para este arquivo, adicione o comando export LESS='<all the flags you want, without -X or -F>' ou set -gx LESS <flags> para fish. Você pode executar echo $LESS antes para ver os sinalizadores existentes a serem copiados para a instrução export / set .

    
por 06.10.2014 / 21:47
0

Eu percebi isso! Tudo o que tenho que fazer é definir $TERM to xterm . Costumava ser linux

export TERM=xterm 

Obrigado pelo link e dicas, David!

    
por 22.01.2012 / 17:33

Tags