Vim 光标在特定事件上发生变化

Vim 光标在特定事件上发生变化

我试过了VSVim最近。我注意到的一件好事是当输入c或时d,光标形状变为半下划线。删除光标所在行后,dd形状恢复为块状。 Vim 可以添加这个功能吗?

光标在 <change> 上改变

答案1

就我而言,我认为是gvim在 Windows 上,这让我习惯了正常模式和插入模式下的不同光标。

您没有指定任何终端;我在.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_SIvim的帮助中提到了for xterm,尝试一下:h t_SI。转义序列也有点难找到。

对于仅一种端子类型,您可以省略该if ($TERM ==部分

如您所见,我首先有一个黄色光标。这既不实用,也不能很好地与 shell 光标配合使用。现在我有一个正常模式的完整光标和一行(xterm)或四分之一块(linux)。

相关内容