На Ma c vim, как мне поменять курсор на мигающий блок? - PullRequest
0 голосов
/ 22 апреля 2020

Я использую vim на Ma c OS X. Я хочу изменить курсор на мигающий блок. Я попытался следовать инструкциям здесь - https://vim.fandom.com/wiki/Change_cursor_shape_in_different_modes. Я создал свой файл ~ / .vimr c примерно так

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

Однако, когда я выхожу и перезагружаю свой терминал, мой курсор не мигает, когда я открываю файл с помощью vim. Что еще мне нужно сделать, чтобы изменить мои настройки?

1 Ответ

0 голосов
/ 24 апреля 2020

В моем файле .vimrc есть следующее. Я не помню, откуда я это взял, но это могла быть эта тема на reddit . Он работает как в iTerm, так и в терминале, а также с tmux или без него:

let &t_EI = "\<Esc>[1 q"
let &t_SR = "\<Esc>[3 q"
let &t_SI = "\<Esc>[5 q"

. Это даст вам мигающий блок в обычном режиме, мигающую вертикальную полосу в режиме вставки и мигающее подчеркивание в режиме замены.

Вам также нужно включить мигающие курсоры в вашем терминале. Например, в iTerm это делается в Настройки> Профили> Текст , где вы включаете Мигающий курсор :

Screenshot of iTerm preferences

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...