Limpar a tela depois de sair do Windows vim com o ConEmu / Cygwin

3

Estou tentando reunir três coisas: ConEmu , Cygwin e vim. O vim em questão não é o Cygwin vim, mas o Windows nativo vim do pacote gvim (escolhido porque o Cygwin vim não suporta 256 cores do xterm). O realce de sintaxe de 256 cores parece funcionar depois que eu segui as instruções no StackOverflow, mas não consigo resolver outro problema.

Cygwin vim funciona bem com telas alternativas: quando eu saio, o conteúdo da tela é limpo e posso ver meu histórico de comandos de volta. O Windows vim não: quando eu sair, o prompt de comando aparece embaixo da página do conteúdo antigo do vim. Esta pergunta foi feita várias vezes no StackOverflow e no SuperUser: aqui , aqui , aqui e aqui . No entanto, nenhuma das soluções nessas questões parece funcionar no ConEmu / Cygwin. Eu tentei:

  • definindo t_ti e t_te no meu .vimrc da seguinte forma:

    let &t_ti="\e[?47h"
    let &t_te="\e[?47l"
    
  • ou:

    let &t_ti="\e[?1049h"
    let &t_te="\e[?1049l"
    
  • ativando altscreen on em .screenrc . Não tenho certeza se deveria ter algum efeito, já que eu nem tinha screen instalado no Cygwin. Instalá-lo não mudou nada, no entanto. O lançamento explícito do vim com screen traz resultados estranhos: metade das seqüências de escape e códigos e quebrados, nem todas as teclas são reconhecidas, e as dimensões do console são ~ 80x40, independentemente dos argumentos screen .

Meu $TERM no vim atualmente é xterm , já que foi definido em .vimrc config necessário para ativar o suporte a 256 cores no ConEmu. No entanto, enviar seqüências de escape semelhantes a xterm não parece limpar a tela.

Eu ficaria feliz em receber ajuda com esse problema.

    
por Skiminok 23.02.2013 / 00:01

2 respostas

0

O AFAIK vim (versão do Windows) não publica no terminal para entrar / sair de seqüências de modo alternativo. Não sei como a mintty lida com isso, ainda está investigando.

    
por 23.02.2013 / 00:20
1

Tente definir isso no seu .vimrc , que também ativa a roda de rolagem no vim.
Isso veio do link , as notas da compilação 150316. Parece que finalmente resolveu esse problema para mim.

""""""""""""""""""""""""""""""""""""""
" let mouse wheel scroll file contents
""""""""""""""""""""""""""""""""""""""
if !has("gui_running")
    set term=xterm
    set mouse=a
    set nocompatible
    inoremap <Esc>[62~ <C-X><C-E>
    inoremap <Esc>[63~ <C-X><C-Y>
    nnoremap <Esc>[62~ <C-E>
    nnoremap <Esc>[63~ <C-Y>
endif
    
por 10.10.2015 / 12:05