Форма курсора в vim в konsole в kde с tmux

Форма курсора в vim в konsole в kde с tmux

Я использую KDE и vimв Konsole у меня есть такие команды .vimrc:

" Konsole
" solid underscore
let &t_SI = "\033]50;CursorShape=2\007"
" solid block
let &t_EI = "\033]50;CursorShape=0\007"

Но это не работает, когда я использую tmux. Почему это так и что я могу сделать, чтобы это заработало?

решение1

В соответствии смоя конфигурация vim:

tmux будет пересылать escape-последовательности на терминал только в том случае, если они окружены последовательностью DCS (видеть)

Поэтому, когда моя конфигурация обнаруживает, что vim запущен в tmux ( if exists('$TMUX')), она окружает каждую escape-последовательность символами "\ePtmux;\e"и"\e\\"

Мои управляющие последовательности специфичны для xterm, но, полагаю, вам нужно проделать аналогичный трюк для Konsole.

Количество: "\e"такой же как"\033"

Ваш случай будет выглядеть так (извините, не проверено):

" Konsole
" solid underscore
let &t_SI = "\033]50;CursorShape=2\007"
" solid block
let &t_EI = "\033]50;CursorShape=0\007"

if exists('$TMUX')
  let &t_SI = "\ePtmux;\e" . &t_SI . "\e\\"
  let &t_EI = "\ePtmux;\e" . &t_EI . "\e\\"
endif

Связанный контент