
我使用 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 配置:
如果被 DCS 序列包圍,tmux 只會將轉義序列轉送到終端(看)
因此,當我的配置偵測到 vim 正在 tmux ( if exists('$TMUX')
) 中運行時,它將用"\ePtmux;\e"
and包圍每個轉義序列"\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