LoginSignup
73
51

More than 5 years have passed since last update.

端末の Vim でも挿入モードで縦棒カーソルを使いたい

Last updated at Posted at 2017-09-21

Neovim が端末版でも GUI 版と同様に挿入モード時にカーソルを|(縦棒)にしてくれるのが良いなぁというツイートをしたら Vim でのやり方を教えていただいたのでメモ.

tmp.gif

下記の設定を 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 をサポートしている端末では動くはず.

73
51
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
73
51