De acordo com minha configuração do vim :
tmux will only forward escape sequences to the terminal if surrounded by a DCS sequence (see)
Portanto, quando minha configuração detectar que o vim está sendo executado no tmux ( if exists('$TMUX')
), ela cercará todas as seqüências de escape com "\ePtmux;\e"
e "\e\"
Minhas sequências de escape são específicas do xterm, mas eu acho que você precisa executar um truque similar para o Konsole.
N.b .: "\e"
é o mesmo que "3"
Seu caso seria (desculpe, não testado):
" Konsole
" solid underscore
let &t_SI = "3]50;CursorShape=2" Konsole
" solid underscore
let &t_SI = "3]50;CursorShape=2%pre%7"
" solid block
let &t_EI = "3]50;CursorShape=0%pre%7"
if exists('$TMUX')
let &t_SI = "\ePtmux;\e" . &t_SI . "\e\"
let &t_EI = "\ePtmux;\e" . &t_EI . "\e\"
endif
7"
" solid block
let &t_EI = "3]50;CursorShape=0%pre%7"
if exists('$TMUX')
let &t_SI = "\ePtmux;\e" . &t_SI . "\e\"
let &t_EI = "\ePtmux;\e" . &t_EI . "\e\"
endif