背景
之所以会出现shell中vim光标无法根据模式切换的情况,是因为终端vim的光标样式是由它所在的终端模拟器决定的,因此要解决这个问题,需要让vim在切换模式时,向终端模拟器发送指令,请求它改变光标类型。
操作
打开终端,输入以下命令:
vim ~/.vimrc
然后在打开的文件中写入:
let &t_SI = "\<Esc>[6 q"
let &t_SR = "\<Esc>[4 q"
let &t_EI = "\<Esc>[2 q"
按照这个配置,退出后shell中的光标会变成方块,如果你希望在退出vim后使用竖线,请加上这一行:
autocmd VimLeave * silent !echo -ne "\e[6 q"