特定のイベントで Vim カーソルが変更されます。

特定のイベントで Vim カーソルが変更されます。

頑張ったVSVim最近の。私が気づいた良い点の1つは、またはを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。エスケープシーケンスも見つけるのが少し難しいです。

1つの端末タイプにのみこのif ($TERM ==部分を省略できます。

ご覧のとおり、まず黄色いカーソルがあります。これは実用的ではなく、シェルカーソルともうまく機能しません。通常モードではカーソル全体があり、1行(xterm)または1/4ブロック(Linux)があります。

関連情報