Vim 重置或将光标形状设置在“上”;“离开”;
我在OS X 10.7.5上使用iTerm2(构建1.0.0.20130319)和Vim(MacVim快照66的bin)作为我的CLI编辑团队 在iTerm2中,我定义使用不闪烁的垂直条作为光标形状。 在Vim中,我定义了Vim 重置或将光标形状设置在“上”;“离开”;,vim,cursor,shape,Vim,Cursor,Shape,我在OS X 10.7.5上使用iTerm2(构建1.0.0.20130319)和Vim(MacVim快照66的bin)作为我的CLI编辑团队 在iTerm2中,我定义使用不闪烁的垂直条作为光标形状。 在Vim中,我定义了 " Enter insert mode (Cursor shape: vertical bar) let &t_SI = "\<Esc>]50;CursorShape=1\x7" " Leave insert mode (Cursor shape: bl
" Enter insert mode (Cursor shape: vertical bar)
let &t_SI = "\<Esc>]50;CursorShape=1\x7"
" Leave insert mode (Cursor shape: block)
let &t_EI = "\<Esc>]50;CursorShape=0\x7"
进入插入模式(光标形状:垂直条)
让&t_-SI=“\]50;光标形状=1\x7“
“离开插入模式(光标形状:块)
让&t\u EI=“\]50;光标形状=0\x7”
能够区分插入模式和正常模式。基本上这很好用。当我离开Vim并返回CLI时,问题就出现了。发生的情况是,光标不会以其初始形状(垂直条)返回。相反,它决定保持块形状
我是否可以将光标重置为其初始形状或强制其返回为竖条?我可以想象在“VimLeave”上触发一个事件。但我不知道我可以传递什么作为转义序列。你试过这个吗
autocmd VimLeave * let &t_SI = "\<Esc>]50;CursorShape=1\x7"
autocmd vimleeve*let&t\u SI=“\]50;光标形状=1\x7”
我以前尝试过这种方法,因为切换到终端时我习惯了Gvim的光标样式。但我遇到了同样的问题,没有办法解决它
最后我一直在使用改变光标颜色的方法。一旦我习惯了这种风格,我很高兴它,并且完全忘记了光标的形状
改变光标颜色法
autocmd InsertEnter * set cul
autocmd InsertLeave * set nocul
然后,如果主题中没有内置方案,则为主题中的光标
设置与正常
相似但不同的颜色
资料来源:
识别终端插入模式的三种方法之和:
再深入一点
:help
我发现了
autocmd VimLeave * let &t_me="\<Esc>]50;CursorShape=1\x7"
我正在使用带有常规vim的Iterm。这将在启动vim上设置光标实心,在插入模式下闪烁。并在退出vim时返回闪烁状态
augroup myCmds
au!
autocmd VimEnter * silent !echo -ne "\e[2 q"
autocmd VimLeave * silent !echo -ne "\e[1 q"
augroup END
是的。它的行为不符合预期。结果与上面相同,作为一个副作用,在正常模式和插入模式之间切换时,它不再改变形状
augroup myCmds
au!
autocmd VimEnter * silent !echo -ne "\e[2 q"
autocmd VimLeave * silent !echo -ne "\e[1 q"
augroup END