Die Form des Cursors in vim in der Konsole in kde mit tmux

Die Form des Cursors in vim in der Konsole in kde mit tmux

Ich verwende KDE und für vimdie Konsole habe ich folgende Befehle in meiner .vimrc:

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

Aber es funktioniert nicht, wenn ich verwende tmux. Warum ist das so und was kann ich tun, damit es funktioniert?

Antwort1

Entsprechendmeine Vim-Konfiguration:

tmux leitet Escape-Sequenzen nur dann an das Terminal weiter, wenn sie von einer DCS-Sequenz umgeben sind (sehen)

Wenn meine Konfiguration also erkennt, dass vim in tmux ( ) läuft, if exists('$TMUX')umgibt sie jede Escape-Sequenz mit "\ePtmux;\e"und"\e\\"

Meine Escape-Sequenzen sind xterm-spezifisch, aber ich schätze, Sie müssen für die Konsole einen ähnlichen Trick anwenden.

Hinweis: "\e"ist das gleiche wie"\033"

Ihr Fall würde so aussehen (leider ungetestet):

" 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

verwandte Informationen