2011-09-30 33 views
22

Hay buenas fragmento para cambiar el color del cursor:Vim CursorLine cambio de color en el modo de inserción

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 

¿Cómo debería alterar este que en vez de cursor, CursorLine cambiaría de color, por ejemplo, de azul oscuro a azul?

Mi configuración completa es https://bitbucket.org/JackLeo/home-configs/src/5b8faf340f87/.vimrc

+4

me gusta la asignación de las teclas arror con el comentario "Use las teclas hjkl malditos". – Grammin

+0

¿Literalmente escribo \ aquí o es una visualización de^V'ESC '? Cuando copie, pego el texto de arriba en mi .vimrc, no hace nada (y sí, dice ser un xterm ... es una sesión de masilla en un cuadro Linux) –

Respuesta

27

Tiene usted mira en en el comando 'destacado' que es una forma más fácil de controlar esto.

Por ejemplo, para cambiar el CursorLine,

:hi CursorLine guifg=red guibg=blue 

referencia: ayuda resalte

Para que sea cambiar entre el modo.

" 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 

Puede que sea posible mezclar termcap de color con autocmd, pero En mi opinión, lo más destacado es más fácil de mantener en el largo plazo (y en caso de uso gVim de vez en cuando)

+0

Lo sé, lo estoy usando en la configuración archivo. El punto es que quiero que cambie dependiendo de si estoy en modo insertar. – JackLeo

+0

actualizó la respuesta para abordar el problema 'cambiar el color depende del modo'. –

+0

¡Este fue un consejo tan útil! ¡¡Gracias!! –

6

Esto es muy sencillo, poner el siguiendo en su .vimrc o archivo personalizado 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 

Para obtener más información, véase:

N.B: Se puede utilizar el mismo método para cambiar el color del cursor sin todos esos if -statements y escape-sequences (y esto también funcionará en GVim).

+1

otros ejemplos útiles 'cterm = bold' y puede" deshacer "cualquier cosa con' NONE', p. Ej. No resalto cuando no estoy en modo Insertar, con 'ctermfg = NONE ctermbg = NONE cterm = NONE' – artfulrobot

2

Al usar MacVim con 'Lokaltog/vim-powerline' puede configurar sus colores normal/visual/insertar para que coincida con el color del modo powerline. Encuentro esto extremadamente útil para saber en qué modo estoy sin leer la línea eléctrica, especialmente en una pantalla grande.

Aquí está el código que estoy usando, basado en la respuesta de @Zarick-Lau.

En mi archivo 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; 

Aquí hay un ejemplo usando el esquema de color original de Molokai.

normal

normal mode (green

Visual

visual mode (orange)

Insertar

insert mode (blue)

También me parece útil configurar el sistema operativo para que también se pueda seleccionar visualmente usando el mismo color. Por ejemplo, cambié mi color de resaltado a Orange en OSX, y cuando selecciono texto, ahora es naranja en lugar de azul, igual que en VIM.

select orange highlight

Ejemplo

Aquí el punto culminante de color naranja que se utilizó en el cuadro de texto ya que estoy escribiendo esta entrada desbordamiento de pila. Ahora todo el texto que selecciono en mi SO coincide con la configuración de VIM.

selecting text in the OS

Cuestiones relacionadas