vim中的遊標形式在kde中的konsole中與tmux

vim中的遊標形式在kde中的konsole中與tmux

我使用 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

相關內容