Очистка экрана после выхода в Windows vim с помощью ConEmu/Cygwin

Я пытаюсь собрать вместе 3 вещи: ConEmu, Cygwin и vim. Рассматриваемый vim - это не Cygwin vim, а нативный Windows vim из пакета gvim (выбран потому, что Cygwin vim не поддерживает цвета xterm 256). Подсветка синтаксиса из 256 цветов, кажется, работает после того, как я следовал инструкциям на StackOverflow, но я не могу решить другую проблему.

Cygwin vim отлично работает с альтернативными экранами: при выходе из него содержимое экрана очищается, и я снова вижу историю команд. Windows vim этого не делает: когда я выхожу, командная строка появляется под страницей прежнего содержимого vim. Этот вопрос задавался несколько раз в StackOverflow и SuperUser: здесь, здесь, здесь и здесь. Однако ни одно из решений в этих вопросах не работает в ConEmu/Cygwin. Я старался:

  • установка t_ti а также t_te в моем .vimrc следующее:

    let &t_ti="\e[?47h"
    let &t_te="\e[?47l"
    
  • или же:

    let &t_ti="\e[?1049h"
    let &t_te="\e[?1049l"
    
  • что позволяет altscreen on в .screenrc, Я не уверен, что это должно было иметь какое-либо влияние, так как я даже не имел screen установлен в Cygwin. Однако его установка ничего не изменила. Явный запуск vim с screen дает странные результаты: половина escape-последовательностей и кодов не работает, распознается не каждое нажатие клавиш, а размеры консоли составляют ~80x40 независимо от screen аргументы.

мой $TERM в VIM в настоящее время xterm, как это было установлено в .vimrc Конфигурация необходима для включения поддержки 256 цветов в ConEmu. Однако отправка xterm-подобных escape-последовательностей, похоже, не очищает экран вообще.

Я очень рад за любую помощь в этом вопросе.

2 ответа

Решение

AFAIK vim (версия для Windows) не публикует в терминале последовательности альтернативного режима входа / выхода. Не знаю, как мята справляется с этим, все еще расследует.

Попробуйте установить это в своем .vimrc, который также включает колесо прокрутки в vim.
Это взято из http://conemu.github.io/en/Whats_New.html, сборка 150316 заметок. Казалось, наконец-то решить эту проблему для меня.

""""""""""""""""""""""""""""""""""""""
" 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
Другие вопросы по тегам