4

Я использую PuTTY для подключения через SSH к серверу Ubuntu с моей рабочей станции Windows 7. После подключения я использую установку Vim с сервера Ubuntu для редактирования файлов. Я хочу, чтобы курсор менялся при входе и выходе из режима вставки. Часть моего файла .vimrc похожа на это, но она не меняет курсор:

if &term =~ "xterm"
    echo "xTerm!!inate!"
    let &t_SI = "\<Esc>]12;purple\x7"
    let &t_EI = "\<Esc>]12;blue\x7"
endif

Я знаю, что оператор if выполняется из-за эха.

РЕДАКТИРОВАТЬ: На самом деле я бы предпочел изменить курсор на вертикальную линию, как вы можете в настройках PuTTY, а не изменить цвет, или даже сделать оба. Но просто изменить цвет будет намного лучше, чем ничего. Также я готов поменять терминалы, если есть другой 64-битный терминал, совместимый с Windows 7 Professionsal, который может это сделать (желательно что-нибудь бесплатное). Может быть, Poderosa может сделать это?

1 ответ1

3

Ваш пример работает нормально с использованием xterm, поэтому я не думаю, что проблема заключается в вашем .vimrc .

Если копнуть немного глубже, кажется, что PuTTY не реализует управляющий код OSC, который вы используете для изменения цвета курсора (см. do_osc в файле terminal.c в источниках PuTTY). Просматривая источники, я не мог найти какой-либо другой механизм, чтобы сделать что-то подобное, либо. Это означает, что, вероятно, не будет легкого способа заставить это работать в PuTTY.

Таким образом, ваши решения могут быть ограничены:

  1. Попытка просить авторов PuTTY реализовать соответствующий escape-код OSC;
  2. Изменение программы терминала; или же
  3. Найти другой способ сообщить vim, в каком режиме вы находитесь.

Я подозреваю, что третий будет самым легким, к сожалению.

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