2015-06-07 14 views
1

Я хотел бы иметь другую цветовую схему, когда я в нормальном режиме/визуальном режиме и переключаюсь на мою цветовую схему по умолчанию, когда я нахожусь в моем режиме вставки. Является ли это возможным ?Vim: Изменение цвета в нормальном режиме

+0

Это может помочь вам http://stackoverflow.com/questions/14013294/vim-how-to-detect-the-mode-in-which-the-user-is-in-for-statusline –

ответ

0

Спасибо, но это для строки состояния. Я нашел решение, как это в моем vimrc:

noremap i :highlight Normal guibg=grey8<cr>i 
noremap o :highlight Normal guibg=grey8<cr>o 
noremap s :highlight Normal guibg=grey8<cr>s 
noremap a :highlight Normal guibg=grey8<cr>a 
noremap I :highlight Normal guibg=grey8<cr>I 
noremap O :highlight Normal guibg=grey8<cr>O 
noremap S :highlight Normal guibg=grey8<cr>S 
noremap A :highlight Normal guibg=grey8<cr>A 

"You need the next line to change the color back when you hit escape. 
inoremap <Esc> <Esc>:highlight Normal guibg=black<cr> 
1

Вместо того, чтобы переопределяя (встроенный) команд, вы можете также подключить в InsertEnter/InsertLeave автокоманд:

autocmd InsertLeave * highlight Normal guibg=grey8 
autocmd InsertEnter * highlight Normal guibg=black 

Это также будет охватывать пользовательские (плагины) отображения, которые меняют режимы, и это позволяет избежать переназначения <Esc>, что может быть проблематичным.