3

Я пытаюсь привести к совместной работе 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 ответа2

1

Попробуйте установить это в вашем .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
0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .