Изменение цвета 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
Ответы
Ответ 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.
![выбор текста в ОС]()