특정 이벤트에서 Vim 커서가 변경됩니다.

특정 이벤트에서 Vim 커서가 변경됩니다.

나는 노력했다VSVim최근의. 제가 알아차린 좋은 점 중 하나는 c또는 를 입력할 때 d커서 모양이 절반 밑줄로 변경된다는 것입니다. 커서가 위치한 라인을 삭제한 후 dd모양이 블록으로 돌아갑니다. Vim에 이 기능을 추가할 수 있나요?

<change>에 대한 커서 변경

답변1

제 경우에는 gvimWindows를 사용하면서 일반 모드와 삽입 모드의 서로 다른 커서에 익숙해졌습니다.

터미널을 지정하지 않았습니다. .vimrcLinux 콘솔과 xterm에서 작은 기능을 만들었습니다.

" Cursor shape ANSI-Codes
fu Cursor_tve()
if ($TERM == 'linux')
    au! InsertEnter * set t_ve=^[[?3;0;8c^[[?25h
    au! InsertLeave * set t_ve=^[[?192;7;50c^[[?25h
    " yellow
    "set t_ve=^[[?255;16;245c^[[?25h
endif

if ($TERM =~ 'xterm' )
    set t_SI=^[[4\ q
    set t_EI=^[[2\ q
    " for xterm: (just blink)
    "au! InsertEnter * set t_ve=^[[?25h^[[?12h
    "au! InsertLeave * set t_ve=^[[?12l^[[?25h
endif

endfu

(저는 .vimrc 에서도 호출합니다 call Cursor_tve().)

t_SIxterm에 대한 vim의 도움말이 언급되어 있으므로 시도해 보십시오 :h t_SI. 이스케이프 시퀀스도 찾기가 조금 더 어렵습니다.

하나의 터미널 유형에만 이 if ($TERM ==부분을 생략할 수 있습니다.

보시다시피 먼저 노란색 커서가 있습니다. 이는 실용적이지 않으며 쉘 커서와도 잘 작동하지 않습니다. 이제 일반 모드에서는 전체 커서가 있고 한 줄(xterm) 또는 1/4 블록(Linux)이 있습니다.

관련 정보