터미널의 Vim에서도 삽입 모드에서 세로 막대 커서를 사용하고 싶습니다.

1640 단어 VimiTerm2
Neovim이 단말판에서도 GUI판과 같이 삽입 모드시에 커서를 |(세로 막대)로 해주는 것이 좋다고 하는 트윗을 하면 Vim에서의 방법을 가르쳐 주셨으므로 메모.



아래의 설정을 vimrc에 쓰면 OK.
if has('vim_starting')
    " 挿入モード時に非点滅の縦棒タイプのカーソル
    let &t_SI .= "\e[6 q"
    " ノーマルモード時に非点滅のブロックタイプのカーソル
    let &t_EI .= "\e[2 q"
    " 置換モード時に非点滅の下線タイプのカーソル
    let &t_SR .= "\e[4 q"
endif

Neovim은 DECSCUSR을 사용하여 커서 모양을 변경합니다. 같기 때문에 제어 시퀀스를 사용합니다.

Vim 에는 t_ 로 시작하는 이름의 단말 옵션이 있어, 그 안에 삽입 모드 개시시의 옵션 t_SI 와 종료시의 옵션 t_EI , 치환 모드 개시시의 옵션 t_SR (각각 아마 Start Insert와 End Insert, Start Replace의 약어)가 있으므로 커서의 모양을 변경하는 시퀀스를 추가합니다.

위의 설정 이외에도 깜박이거나 (\e[1 q,\e[5 q,\e[3 q)도 가능합니다.

수중 터미널 (iTerm2 및 Terminal.app)에서만 확인했지만 DECSCUSR을 지원하는 터미널에서 작동해야합니다.

좋은 웹페이지 즐겨찾기