在 Mac vim 上,如何将光标更改为闪烁块?

sat*_*ish 3 macos vim text-cursor

我在 Mac OS X 上使用 vim。我想将光标更改为闪烁块。我尝试按照此处的说明进行操作 - https://vim.fandom.com/wiki/Change_cursor_shape_in_ Different_modes 。我像这样创建了 ~/.vimrc 文件

localhost$ cat ~/.vimrc 
set pastetoggle=<F2>

let &t_SI.="\e[5 q" "SI = INSERT mode
let &t_SR.="\e[4 q" "SR = REPLACE mode
let &t_EI.="\e[1 q" "EI = NORMAL mode (ELSE)

"Cursor settings:

"  1 -> blinking block
"  2 -> solid block 
"  3 -> blinking underscore
"  4 -> solid underscore
"  5 -> blinking vertical bar
"  6 -> solid vertical bar

if &term =~ "xterm.*"
    let &t_ti = &t_ti . "\e[?2004h"
    let &t_te = "\e[?2004l" . &t_te
    function! XTermPasteBegin(ret)
        set pastetoggle=<Esc>[201~
        set paste
        return a:ret
    endfunction
    map <expr> <Esc>[200~ XTermPasteBegin("i")
    imap <expr> <Esc>[200~ XTermPasteBegin("")
    vmap <expr> <Esc>[200~ XTermPasteBegin("c")
    cmap <Esc>[200~ <nop>
    cmap <Esc>[201~ <nop>
endif
Run Code Online (Sandbox Code Playgroud)

但是,当我退出并重新启动终端时,使用 vim 打开文件时光标不会闪烁。我还需要做什么来调整我的设置?

run*_*nar 6

我的文件中有以下内容.vimrc。我不记得从哪里得到它,但可能是reddit 上的这个帖子。它可以在 iTerm 和 Terminal 中运行,无论有没有 tmux:

let &t_EI = "\<Esc>[1 q"
let &t_SR = "\<Esc>[3 q"
let &t_SI = "\<Esc>[5 q"
Run Code Online (Sandbox Code Playgroud)

这将在正常模式下为您提供一个闪烁的块,在插入模式下为您提供一个闪烁的垂直条,在替换模式下为您提供一个闪烁的下划线。

您还必须在终端中启用闪烁光标。例如,在 iTerm 中,这是在“首选项”>“配置文件”>“文本”中完成的,您可以在其中启用“闪烁光标”:

iTerm 首选项的屏幕截图