
Я использую 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