Risposte:
Stai cercando la definizione di undo-blocks
.
Da :h undo-blocks
:
Un comando di annullamento normalmente annulla un comando digitato, indipendentemente dalle modifiche apportate da quel comando. Questa sequenza di modifiche annullabili forma un blocco di annullamento. Pertanto, se i tasti digitati richiamano una funzione, tutti i comandi nella funzione vengono annullati insieme.
Lo stesso blocco viene utilizzato per redo
. Da :h redo
:
Le ultime modifiche vengono ricordate. È possibile utilizzare i comandi Annulla e Ripeti sopra per ripristinare il testo com'era prima di ogni modifica. Puoi anche applicare nuovamente le modifiche, recuperando il testo prima dell'annullamento.
Editing modale di vim è spesso visto come un operatore (per esempio c
, d
...) applicato sopra un movimento (ad esempio iw
, w
, }
, ...). Come un meraviglioso prodotto Vim ottiene un grosso annullamento. Laddove come altri editor devono fare alcune ipotesi per trasformare molti piccoli annullamenti in blocchi di annullamento, Vim lo fa naturalmente. Un altro effetto collaterale è che ti dà un operatore di ripetizione, .
(noto anche come comando punto).
La tua domanda menziona specificamente le sequenze di tasti, quindi presumo che tu voglia sapere come annullare piccole modifiche mentre sei in modalità inserimento. La risposta è che questa non è "la via di Vim". "The Vim Way" significa che sarai in modalità insert per brevi raffiche alla volta. Ciò significa che quando si commettono errori nella modalità di inserimento, spesso si esce dalla modalità normale e si corregge il testo o si annulla u
e si riscrive il testo.
A volte è necessario dividere un blocco di annullamento in modalità inserimento. Ciò può essere realizzato tramite <c-g>u
in modalità di inserimento. Vedi :h :undoj
e :h undo-blocks
per maggiori informazioni.
Per ulteriore aiuto, suggerisco quanto segue:
:h undo-blocks
:h :undoj
:h undo-tree
:h persistent-undo
:h undo.txt
Ci sono anche alcuni screencast su questo argomento:
Puoi pensarlo anche in questo modo: ogni volta che vai in modalità inserimento per modificare il testo e premi Esc, questo formerà un blocco. Se provi a annullare quel blocco, andrai nella stessa posizione prima di entrare nella modalità di inserimento.
Pertanto puoi "salvare" le modifiche semplicemente uscendo di volta in volta dalla modalità di inserimento: diciamo che vai alla modalità di inserimento e scrivi una funzione. È possibile continuare a scrivere codice e passare alla funzione successiva, tuttavia a volte è preferibile tornare alla modalità normale e passare nuovamente alla modalità di inserimento. In questo modo, puoi avere il tuo codice strutturato in modo semplice e se devi tornare indietro puoi sapere in quale posizione finirai.
Nota: se usi le frecce per spostarti, è come se avessi premuto Esc+ [ hjkl]
CTRL-G u
in modalità inserimento, che è utile se hai alcune macro in modalità inserimento.