Как изменить курсор vim в режиме вставки / нормальном режиме?

Я хотел бы знать, если возможно, как изменить курсор в vim (цвет, форма, и т.д.) в зависимости от того, в каком режиме вы находитесь.

Я постоянно забываю, что я не нахожусь в режиме вставки, и начинаю набирать код, что приводит к всяким безумным вещам. Было бы полезно, если бы на курсоре была какая-то визуальная индикация.

85
задан lanrat 27 June 2011 в 05:25
поделиться

2 ответа

Если Вы используете современную версию nvim, и Вы хотели достигнуть этого, можно избежать некоторых из этих необычных упомянутых выше обходных решений.

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

# ~/.tmux.conf
set -g default-terminal "screen-256color"
set -ga terminal-overrides ",*256col*:Tc"
set -ga terminal-overrides '*:Ss=\E[%p1%d q:Se=\E[ q',w

" ~/.vimrc
" Sets cursor styles
" Block in normal, line in insert, underline in replace
set guicursor=n-v-c-sm:block,i-ci-ve:ver25-Cursor,r-cr-o:hor20

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

tui-cursor-shape

guicursor

0
ответ дан 24 November 2019 в 08:14
поделиться

Не уверенный, если кто-либо еще сталкивается с задержкой после удара ESC ключ для возвращения к нормальному режиму для показа блочного курсора, но если так, это - способ, которым я фиксирую его также.

На самом деле я использую iTerm2 и использую Vim в моем терминале на Mac И при вводе в режим вставки, курсор, все еще являющийся блоком, и довольно сбиваю с толку, когда Вы в режиме вставки или нормальном режиме.

я хотел показать тонкую строку курсором, когда в режиме вставки и назад заблокироваться, когда в нормальном режиме, поскольку MacVim делает. И сделать так это довольно просто, просто добавил это к моему .vimrc файл как описанный здесь :

let &t_SI = "\<Esc>]50;CursorShape=1\x7"
let &t_SR = "\<Esc>]50;CursorShape=2\x7"
let &t_EI = "\<Esc>]50;CursorShape=0\x7"

enter image description here

, Но как Вы видите, была задержка при ударе ESC, чтобы выйти из режима вставки назад к нормальному режиму и показать блок курсором снова. Таким образом для фиксации его я нашел это:

set ttimeout
set ttimeoutlen=1
set listchars=tab:>-,trail:~,extends:>,precedes:<,space:.
set ttyfast

И теперь это работает довольно прекрасное, как Вы видите:

fix delay going back to block as cursor

я надеюсь, что это могло помочь кому-либо еще! рџ‘»

0
ответ дан 24 November 2019 в 08:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: