Ho un modello di utilizzo "strano" in vim che uso spesso - o che devo usare, a seconda di come lo si visualizza.
Ciò che normalmente accade è questo: inserisco del testo, faccio delle modifiche, quindi rimuovo un po 'di testo. Qualche volta in futuro, immagino che questo pezzo di testo cancellato sarebbe di nuovo utile, quindi accade quanto segue:
- Annulla fino a quando il testo eliminato viene visualizzato nuovamente
- Inserisci il testo in un registro
- Ripeti la cronologia degli annullamenti fino a quando non tornerò alla versione "corrente"
- Incolla il testo strappato
Quello che mi sto chiedendo è questo: c'è un modo per cercare qualcosa nella cronologia degli annullamenti di un file, quindi non dovrò annullare dozzine (o centinaia) di annullamenti per ottenere la versione giusta?
Nota che non sto cercando esplicitamente un VCS "esterno" come Git o Subversion - Sto provando a cercare le modifiche prima di dover salvare un file sul disco.
loop until undo is not available { search "the string"; undo one step; }
. Lo stato di annullamento è disponibile tramite Vim's undotree()
funzione.
git log -p
egit log -p -S 'regex_for_change'
. Non sono a conoscenza di alcuna funzione vim (o funzionalità di Gundo) che ti permetta di indirizzare in modo specifico una parte delle differenze. Ad esempio, è molto facile aggiungere potenza agit log -p
semplicemente usando la ricerca inless
, ma questo non può essere fatto in Gundo.