2012-10-28 12 views
13

Attualmente ho la mia linea di stato configurata in modo che sia arancione in modalità di inserimento e in bianco altrimenti. Mi piacerebbe farlo diventare di un altro colore quando torno alla modalità normale se il file ha delle modifiche non salvate, poiché faccio regolarmente una piccola camminata in una tana del coniglio chiedendomi perché le mie modifiche non hanno avuto effetto. Il piccolo "[+]" non mi colpisce abbastanza in faccia;)Vimscript controlla se il buffer corrente ha modifiche non salvate

Non riesco a trovare nessuna funzione che inizi con "buf" e assomigli ai predicati per la sporcizia. Presumo ne esista uno, ma è chiamato qualcos'altro. Mi aspetto che ci sia qualcosa come bufdirty() o bufchanged(). Qualche indicazione? :)

risposta

19

penso che siete alla ricerca di

:echo &mod[ified] 

che restituisce 1 se modificata e 0 se non modificati.

+0

Esattamente quello che stavo cercando, grazie! – d11wtq

3

Mi piace l'idea di utilizzare il colore della linea di stato per indicare lo stato del buffer. Infatti, ho scritto il StatusLineHighlight plugin, che indica i seguenti attributi: modificato, readonly, non modificabile, speciale non file "scratch" (ma non la modalità di inserimento che stai usando, per questo, trovo l'indicazione della modalità di Vim in l'angolo in basso a sinistra abbastanza).

+0

Interessante, darò un'occhiata al tuo plugin e potrei usarlo se è abbastanza discreto :) – d11wtq

+0

Usando il tuo plugin, grazie. Modificato tutti i colori in modo che solo alcune modalità abbiano un aspetto diverso, ma funziona bene. Forse puoi considerare di aggiungere StatusLineInsert all'elenco (quindi potrei consolidare il mio autocmd!);) – d11wtq

+0

In realtà, ho smesso di usarlo perché non riuscivo a ottenere il comportamento che volevo con la modalità di inserimento (e stranamente, i colori di primo piano/sfondo invertito quando si ricarica .vimrc). Ho rubato la tua saggezza per quanto riguarda gli eventi da usare però, grazie! ;) https://github.com/d11wtq/dot-vim/blob/master/vimrc#L161-178 – d11wtq

Problemi correlati