estou apenas adivinhando, mas talvez a instância da tela tenha sido maior do que o tamanho do seu terminal agora, ou seja, não 80x24 caracteres.
no vim você pode fazer: redesenhar!
e na tela você pode tentar voltar a exibir ^ L l
Eu tenho usado muito screen
. Uma das minhas motivações é a promessa de que minhas sessões de edição (por exemplo, vim
instance) sobreviverão a um X crash. Embora a sessão screen
realmente exceda o X, estou descobrindo que não é totalmente utilizável depois que o X foi reiniciado. vim
em particular parece adquirir algumas falhas estranhas, como uma falha em redesenhar a tela corretamente; Também não consigo ver o texto que é enviado por um comando shell (por exemplo, :!ls
).
Estou usando a versão 10.04 do pacote vim-gnome
do Ubuntu. Esta é a versão 7.2.330-1ubuntu3
. É provavelmente relevante que essa versão de vim
possa ser executada como um aplicativo GUI do GNOME2 ou como um aplicativo de console. Mesmo quando executado a partir do console, ele se integra de alguma forma ao X, por exemplo, fornecendo acesso à área de transferência.
Existe alguma maneira de evitar que esses problemas ocorram ou se recuperem desse estado?
Uma lista de sintomas notáveis em vim
instâncias que sobreviveram a uma falha X:
A conclusão de tabulação não funciona na linha de comando: em vez disso, é inserido um caractere ^I
. Isso acontece, por exemplo, ao tentar completar um nome de arquivo válido que está sendo passado como um argumento para :tabedit
.
q:
não responde. O :^F
parece funcionar, mas foi um pouco estranho iniciar o primeiro par de vezes - pareceu pausar sem atividade HD ou CPU por alguns segundos antes de chegar. Nesse meio tempo, consegui mover o cursor - com j
, k
, etc. - na área em que a janela de buffer da linha de comando apareceria mais tarde.
update : Após uma inspeção mais aprofundada, parece que ele está apenas desenhando a janela de linha de comando quando tento mover o cursor além do final de uma linha.
^C
não funciona para cancelar a janela da linha de comando. Se eu quiser sair sem executar um comando, tenho que acessar [ENTER]
em uma linha em branco.
os comandos da linha de comando inseridos na linha de comando, ou seja, não da janela de buffer da linha de comando, não são adicionados ao histórico da linha de comando.
o comando :ls
e outros comandos que normalmente exibem a saída multilinha, não exibem a saída. EG :echo "onefish"
funciona normalmente, mas nenhuma saída é exibida como resultado do comando :echo "onefish\ntwofish"
.
como mencionado acima, a saída dos comandos do shell não aparece. Comandos do shell que usam curses (por exemplo, :!man ls
) funcionam.
Os registradores da área de transferência X @*
e @+
não estão disponíveis: tentar, por exemplo, colar via "+p
dá erro E353: Nothing in register +
. Eu gostaria de esperar que essa questão específica estivesse presente e suspeite que ela não esteja relacionada aos outros problemas. Em qualquer caso, seria ótimo encontrar uma solução para isso.
Minha solução atual é fazer um :mksession
e, em seguida, sair do vim
e reiniciá-lo com essa sessão. Isso vai ser meio chato, já que tenho cerca de 10% devim
instâncias em execução, muitas com alguns buffers sem nome úteis, variáveis vimscript e outras entidades que não são salvas em sessões.
Eu tentei a sugestão de @ {griff steni.us}, mas nem :redraw!
nem ^L I
parece ter algum efeito útil. ^L I
fez a tela piscar.
estou apenas adivinhando, mas talvez a instância da tela tenha sido maior do que o tamanho do seu terminal agora, ou seja, não 80x24 caracteres.
no vim você pode fazer: redesenhar!
e na tela você pode tentar voltar a exibir ^ L l
Tags vim xorg gnu-screen