Подтвердить что ты не робот

Изменение цвета Vim CursorLine в режиме вставки

Существует хороший снимок для изменения цвета курсора:

if &term =~ "xterm\\|rxvt"
  " use an orange cursor in insert mode
  let &t_SI = "\<Esc>]12;orange\x7"
  " use a red cursor otherwise
  let &t_EI = "\<Esc>]12;red\x7"
  silent !echo -ne "\033]12;red\007"
  " reset cursor when vim exits
  autocmd VimLeave * silent !echo -ne "\033]112\007"
  " use \003]12;gray\007 for gnome-terminal
endif

Как мне изменить это, вместо курсора, CursorLine изменит цвет, например, от синего до синего?

Моя полная конфигурация https://bitbucket.org/JackLeo/home-configs/src/5b8faf340f87/.vimrc

4b9b3361

Ответ 1

Вы заглянули в команду "highlight", которая является более простым способом управления этим.

Например, чтобы изменить CursorLine,

:hi CursorLine guifg=red guibg=blue

Ссылка:: подсветка справки

Чтобы переключиться между режимами.

" Enable CursorLine
set cursorline

" Default Colors for CursorLine
highlight  CursorLine ctermbg=Yellow ctermfg=None

" Change Color when entering Insert Mode
autocmd InsertEnter * highlight  CursorLine ctermbg=Green ctermfg=Red

" Revert Color to default when leaving Insert Mode
autocmd InsertLeave * highlight  CursorLine ctermbg=Yellow ctermfg=None

Я могу смешивать цвет termcap с autocmd, но IMO, подсветка легче поддерживать в долгосрочной перспективе (и в случае использования gVim время от времени)

Ответ 2

Это довольно просто, добавьте следующее в .vimrc или пользовательский colorscheme.

set cursorline
autocmd InsertEnter * highlight CursorLine guifg=white guibg=blue ctermfg=white ctermbg=blue
autocmd InsertLeave * highlight CursorLine guifg=white guibg=darkblue ctermfg=white ctermbg=darkblue

Для получения дополнительной информации см.

N.B: вы можете использовать тот же метод для изменения цвета курсора без всех этих if -становок и escape-последовательностей (и это также будет работать в GVim).

Ответ 3

При использовании MacVim с "Lokaltog/vim-powerline" вы можете настроить свои обычные/визуальные/вставные цвета в соответствии с цветом режима powerline, Я считаю, что это очень полезно знать, в каком режиме я работаю, не читая powerline, особенно на большом экране.

Вот код, который я использую, на основе ответа @Zarick-Lau.

В моем colors/molokai.vim файле:

" Visual Mode Orange Background, Black Text
hi Visual          guifg=#000000 guibg=#FD971F

" Default Colors for CursorLine
highlight CursorLine guibg=#3E3D32
highlight Cursor guibg=#A6E22E;

" Change Color when entering Insert Mode
autocmd InsertEnter * highlight  CursorLine guibg=#323D3E
autocmd InsertEnter * highlight  Cursor guibg=#00AAFF;

" Revert Color to default when leaving Insert Mode
autocmd InsertLeave * highlight  CursorLine guibg=#3E3D32
autocmd InsertLeave * highlight  Cursor guibg=#A6E22E;

Вот пример, используя оригинальную цветовую схему молокаи.

Normal

нормальный режим (зеленый)></a></p>  <p> <strong> Визуальное</STRONG></P>  <p> <a href=визуальный режим (оранжевый)

Вставить

режим вставки (синий)

Я также считаю полезным настроить OS для визуального выбора с использованием того же цвета. Например, я изменил цвет подсветки на Orange в OSX, и когда я выбираю текст, теперь он оранжевый, а не синий, как в VIM.

выберите оранжевую подсветку

Пример

Здесь оранжевая подсветка используется в текстовом поле, когда я пишу эту запись. Теперь весь текст, который я выбираю в моей ОС, соответствует настройке VIM.

выбор текста в ОС