Neovim が端末版でも GUI 版と同様に挿入モード時にカーソルを|(縦棒)にしてくれるのが良いなぁというツイートをしたら Vim でのやり方を教えていただいたのでメモ.
https://twitter.com/satoh_fumiyasu/status/910554613044015104
下記の設定を 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 をサポートしている端末では動くはず.