问题

出于个人习惯,我在终端模拟器(iTerm2 等)中,都是将光标(cursor)设置为 vertical bar,而在 neovim 中则是将 normal 模式的光标设置为 block。

这样一来,当我从 neovim 的正常模式退出时,导致终端的光标样式也变成了 block,非常麻烦。主要是因为终端没有提供 API 查询当前的光标样式设置,因此 neovim 在退出时也不知道要如何重设光标。

解决

思路就是退出 neovim 的时候把光标重新设置为 vertical bar(ver25)。

if $TERM_PROGRAM =~ "iTerm"
  " reset cursor when vim exits
  au VimLeave * set guicursor=a:ver25-blinkon0
endif

其中ver25就是想要设置的样式,也可以是block等等,这样在退出 neovim 的时候就会重新将 iTerm2 的光标设置为 vertical bar。