Vim是模式化的编辑器,一个常见的操作是在正常模式(normal mode)和插入模式(insert mode)之间切换。这两种模式下面都需要移动光标,如果光标指示能告诉我们现在所处的模式的话,是可以减少一些误操作(比如少按一些ESC)。

如果使用形界面的Vim,如GVim或者MacVim,光标的切换是自动进行的,正常模式下是竖长条,插入模式下是竖细线;但是如果使用的是终端模式的Vim,根据终端能力的不同,可能并不会支持光标的变化。

Vim Tips Wiki上面的这篇文章介绍了如何在一些常见的终端模拟器里面配置光标切换。

Mode-dependent_cursor_in_vim介绍如何配置Cygwin+Mintty下Vim的光标切换。

由于终端的差异性,想找一个通用的光标切换解决方案很难,但是StackOverflow上给了一个基于cursorline的解决方案:

把上面的配置加入.vimrc,产生的效果是:在插入模式下,光标所在行会被高亮,而且高亮模式是对主题敏感的,不同的主题可以有不同的显示,可以是下划线,也可以是特定的背景色,简洁明了。