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