Establezca números de línea solo en modo normal

8

No tengo mucho uso para los números de línea mientras estoy en modo de inserción, así que me gustaría desactivarlos. Sin embargo, son excelentes para el modo normal.

set nu!Usar constantemente es cansador. ¿Hay alguna manera de vincular set nu!a salir y entrar en modo normal?

¿Alguna solución usando el método anterior o cualquier otro?

Jason Basanese
fuente
Con respecto a su comentario a la respuesta de @ Carpetsmoker, ¿por qué debería mantener el margen pero no los números de línea? ¿Cuál fue su intención original de deshacerse de los números?
Rolf
Actúa como una forma de diferenciar entre el modo de inserción y el modo normal. También eliminar los números de línea sirve para eliminar información irrelevante del modo de inserción. Si cada vez que ingresa al modo de inserción, elimina el margen, es probable que le duela la cabeza por todo el texto que cambia tres espacios cada vez. Algunos podrían preferir esto, sin embargo, no es mi preferencia.
Jason Basanese

Respuestas:

13

Puede hacer esto con los comandos automáticos.

au InsertEnter * set nonumber
au InsertLeave * set number

No se necesita mucha explicación. Esto hace exactamente lo que pediste. Vincula "entrar y salir del modo de inserción" a "activar y desactivar números de línea".

James
fuente
1
Sin embargo, tenga en cuenta que InsertLeave no se activa cuando se usa Ctrl-C para salir del modo de inserción
Christian Brabandt
5

Aquí hay una solución alternativa que solo ocultará los números, pero en realidad no cambiará el margen a la izquierda para que el texto no salte tanto al ingresar / salir del modo de inserción:

set number

augroup number
    autocmd!
    autocmd InsertEnter * highlight LineNr ctermfg=white guifg=white
    autocmd InsertLeave * highlight LineNr ctermfg=130 guifg=Brown
augroup end

Al ingresar al modo de inserción, esto establecerá el color del texto en el color de fondo. En mi caso, esto es blanco, pero esto puede ser diferente en su caso. Cuando salimos del modo de inserción, se restablece al valor predeterminado para mi combinación de colores.

Puede encontrar el valor predeterminado para su combinación de colores con:

:highlight LineNr
LineNr         xxx term=underline ctermfg=130 guifg=Brown
Martin Tournoij
fuente
3
Aún mejor:au InsertEnter * hi LineNr ctermbg=NONE ctermfg=bg guifg=bg
Christian Brabandt el
Esto es probablemente lo que usaré, pero la otra respuesta es más concisa y responde la pregunta directamente.
Jason Basanese