Impostare i numeri di riga solo in modalità normale


8

Non ho molto da usare per i numeri di riga in modalità di inserimento, quindi vorrei disattivarli. Tuttavia sono fantastici per la modalità normale.

L'uso costante set nu!è noioso. C'è un modo per legare set nu!all'uscita e all'accesso alla modalità normale?

Qualche soluzione utilizzando il metodo sopra o qualsiasi altro metodo?


Per quanto riguarda il tuo commento alla risposta di @ Carpetsmoker, perché dovresti mantenere il margine ma non i numeri di riga? Qual era il tuo intento originale di sbarazzarti dei numeri?
Rolf,

Funziona come un modo per distinguere tra la modalità di inserimento e la modalità normale. Anche la rimozione dei numeri di riga serve per rimuovere informazioni irrilevanti dalla modalità di inserimento. Se ogni volta che entri nella modalità di inserimento rimuovi il margine, è probabile che tu abbia mal di testa da tutto il testo che sposta di tre spazi ogni volta. Alcuni potrebbero preferire questo, tuttavia non è la mia preferenza.
Jason Basanese,

Risposte:


13

Puoi farlo con i autocomandi.

au InsertEnter * set nonumber
au InsertLeave * set number

Non sono necessarie molte spiegazioni. Questo fa esattamente quello che hai chiesto. Collega "entrare ed uscire dalla modalità di inserimento" a "attivare e disattivare i numeri di riga".


1
Si noti tuttavia che InsertLeave non viene attivato quando si utilizza Ctrl-C per uscire dalla modalità di inserimento
Christian Brabandt

5

Ecco una soluzione alternativa che nasconderà solo i numeri, ma in realtà non cambierà il margine a sinistra, quindi il testo non salterà così tanto quando si entra / esce dalla modalità di inserimento:

set number

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

Quando si accede alla modalità di inserimento, questo imposterà il colore del testo sul colore di sfondo. Nel mio caso questo è bianco, ma potrebbe essere diverso nel tuo caso. Quando lasciamo la modalità di inserimento, la ripristina ai valori predefiniti per la mia combinazione di colori.

Puoi scoprire l'impostazione predefinita per la tua combinazione di colori con:

:highlight LineNr
LineNr         xxx term=underline ctermfg=130 guifg=Brown

3
Ancora meglio:au InsertEnter * hi LineNr ctermbg=NONE ctermfg=bg guifg=bg
Christian Brabandt,

Questo è probabilmente ciò che userò, ma l'altra risposta è più concisa e risponde direttamente alla domanda.
Jason Basanese,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.