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

相关内容