私はKDEを使用しており、Konsoleのvim
ディレクトリに次のコマンドがあります.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は、DCSシーケンスで囲まれた場合にのみエスケープシーケンスを端末に渡します(バラより)
if exists('$TMUX')
したがって、私の設定では、vimがtmux()で実行されていることを検出すると、"\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