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 구성:

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

관련 정보