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