2009-08-27 14 views
19

È possibile che VIM evidenzi le righe modificate dall'ultimo salvataggio? So che può essere fatto con il controllo della versione, ma può essere fatto senza? Non voglio usare alcun sistema di controllo versione, perché il codice su cui lavoro non ha quello.Vim: evidenzia le righe modificate

Penso che UltraEdit abbia qualcosa del genere.

+0

Sembra che si stia tentando di rendere Vim un sistema di controllo della versione, quindi in effetti si sta tentando di aggiungere un VCS. Perché non utilizzare uno strumento progettato per tale compito? –

+2

Anche se ho dato una risposta più diretta alla tua domanda, devo concordare con William Pursell che ci sarebbe molto da dire per l'utilizzo di un VCS, anche se è solo uno con il repository tenuto localmente nella cartella di lavoro di il progetto (come bazaar, mercurial o git). Non c'è un server da configurare e ti dà una preziosa funzione di annullamento oltre a ciò che può essere fatto con qualsiasi editor. Solo la mia opinione però ... – DrAl

+1

Ho svn per la maggior parte dei miei altri progetti, e so quanto sia prezioso, ma non questo particolare. E non voglio impostare un repository per alcuni file. La risposta di AI è proprio ciò di cui avevo bisogno. – Ayman

risposta

17

Da here:

if !exists(":DiffOrig") 
    command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis 
      \ | wincmd p | diffthis 
endif 

Poi basta fare :DiffOriget voilà!

:help :DiffOrig 
+0

Usa ': diffoff' per disattivarlo nuovamente. C'è già qualche discussione su ': DiffOrig' su Stackoverflow, es. [Qui] (http://stackoverflow.com/questions/6426154/taking-a-quick-look-at-difforig-then-switching-back). – glts

2

se si sta utilizzando CVS, Subversion Git o per i file di origine, allora questo script plugin fare quello che vuoi: VIM svndiff

probabilmente non sarebbe troppo difficile per farlo funzionare da un diff di un file temporaneo (se non ha già quell'opzione).

0

È necessario un file temporaneo da confrontare, e non sono sicuro che Vim ne abbia uno (ha un file .swp ma non so come possa essere sfruttato).

In ogni caso una (strana) possibilità potrebbe essere quella di utilizzare il generico SCMdiff e scrivere uno script della riga di comando che esegua una diff tra il file corrente e una versione .tmp di esso. Dovresti anche mappare un comando che salva il file .tmp per la versione corrente, magari chiamando automaticamente ogni volta che salvi.

6

Da vim wiki

Tipo ": le modifiche" per visualizzare le linee in cui si sono verificati i cambiamenti.

Utilizzare "g;" e "g", per saltare alle linee modificate

Problemi correlati