在 Mac OS X 终端下自定义 vim 光标样式

在 Mac OS X 终端下自定义 vim 光标样式

我想将 vim 光标自定义为闪烁的矩形块。我试过了经过一些搜索后,我还找到了许多其他类似的东西,但它们都没有按预期发挥作用。

目前我的光标是一条不闪烁的灰色下划线(即下面最后一行字符“e”下方的下划线),很难识别。

下划线光标

当光标位于括号字符上时,它会变成一个块。(实际上我相信这是背景颜色的变化)我想要的是一直有这个块,并且闪烁。

块光标

我的 .vimrc 文件中没有与光标样式相关的内容。我使用的是 Mac OS X 10.9、终端版本 2.4 (326) 和 oh-my-zsh。在终端设置中,我使用 Pro 主题并将光标设置为下划线。我可以将其更改为阻止,这样 vim 中的光标也会发生变化,但我需要普通终端中的下划线光标。

终端设置

答案1

您可以尝试一下这个.vimrc

let &t_SI="\033[4 q" " start insert mode
let &t_EI="\033[1 q" " end insert mode

这将设置插入模式的下划线和正常模式的块。更多详细信息:http://vt100.net/docs/vt510-rm/DECSCUSR

也可以在终端中使用此命令,其中 X 可以是 0、1、2、3 或 4。

printf '\033[X q'

答案2

您可能想尝试将其添加到您的 vimrc:

if exists('$TMUX')
    let &t_SI = "\<Esc>Ptmux;\<Esc>\<Esc>]50;CursorShape=0\x7\<Esc>\\"
    let &t_EI = "\<Esc>Ptmux;\<Esc>\<Esc>]50;CursorShape=0\x7\<Esc>\\"
else
    let &t_SI = "\<Esc>]50;CursorShape=0\x7"
    let &t_EI = "\<Esc>]50;CursorShape=0\x7"
endif

这应该为 tmux 或 iTerm 提供正确的转义序列。

我还发现根据当前模式自动改变光标的插件。

相关内容