Inserire, annullare, ripetere
Il modo INSERT ha più di un ingresso, e sceglierlo bene ti risparmia metà dei movimenti. Poi c'è ., un tasto solo, che è probabilmente il comando più redditizio di tutto Vim.
Sei modi di entrare in INSERT
Premere i e poi navigare fino al punto giusto è lo sbaglio del principiante. Vim ha un tasto per ogni punto d'ingresso comune: la posizione la scegli entrando, non dopo.
| Tasto | Entra in INSERT… |
|---|---|
| i a | prima / dopo il carattere sotto il cursore |
| I A | all'inizio del testo della riga / a fine riga |
| o O | aprendo una riga nuova sotto / sopra, già indentata |
| gi | esattamente dove avevi smesso di scrivere l'ultima volta |
| cc C | svuotando la riga intera / da qui a fine riga |
| s S | cancellando il carattere / la riga e inserendo |
Modifiche piccole che non richiedono INSERT
| Tasto | Effetto (si resta in NORMAL) |
|---|---|
| x X | cancella il carattere sotto / prima del cursore |
| rx | sostituisce il carattere con x e basta |
| ~ | inverte maiuscolo/minuscolo e avanza |
| J | unisce la riga sotto a questa, sistemando gli spazi |
| gJ | le unisce senza toccare gli spazi |
| Ctrl-a Ctrl-x | incrementa / decrementa il numero sotto o dopo il cursore |
Annullare, e annullare l'annullamento
| Comando | Effetto |
|---|---|
| u | annulla l'ultima modifica · 3u le ultime tre |
| Ctrl-r | rifà ciò che hai annullato |
| U | annulla tutte le modifiche fatte sull'ultima riga toccata |
| :earlier 10m | riporta il file com'era dieci minuti fa |
| :later 5m | e riavanti di cinque |
Il punto: ripetere l'ultima modifica
. riesegue l'ultimo comando che ha cambiato il testo, inserimento compreso. Non ripete i movimenti né i comandi con i due punti: solo le modifiche. Il modo giusto di lavorare in Vim è quindi: fai una modifica in una forma ripetibile, spostati, premi il punto.
let a = 1 let b = 2 let c = 3 # A ; Esc → sistema la prima riga # j . → scendi e ripeti # j . → e ancora let a = 1; let b = 2; let c = 3;
Due tasti per riga, e la sequenza j. si tiene premuta a lungo senza
pensare. La stessa idea vale per daw ripetuto su parole diverse,
>> ripetuto su righe diverse, ciw seguito da una
parola nuova.
Scorciatoie utili dentro INSERT
| Tasto | Effetto senza uscire da INSERT |
|---|---|
| Ctrl-w | cancella la parola appena scritta |
| Ctrl-u | cancella tutto quello che hai inserito nella riga |
| Ctrl-r reg | incolla il contenuto di un registro (lezione 5) |
| Ctrl-o | esegue un solo comando NORMAL e torna a scrivere |
| Ctrl-n Ctrl-p | completa la parola guardando le altre parole del file |
| Ctrl-t Ctrl-d | aumenta / riduce l'indentazione della riga |
cgn: sostituire occorrenze una a una, col punto
Il comando :s (lezione 6) sostituisce in blocco. Ma spesso vuoi
decidere caso per caso, guardando il contesto. La combinazione classica è
cgn: gn è un oggetto di testo che significa «la
prossima occorrenza dell'ultima ricerca».
/vecchioNome # 1. cerca il termine cgn nuovoNome Esc # 2. cambia questa occorrenza . # 3. ripeti sulla prossima n # oppure: salta questa e vai avanti . # e riprendi
Il bello è che . qui fa due cose insieme: salta alla
prossima occorrenza e applica la modifica. Quindi tieni premuto il punto finché
ti va bene, e quando incontri un caso da lasciare stare premi n per
scavalcarlo. È un :%s///gc ma con il testo davanti agli occhi e con
u sempre disponibile.
* poi cgn, senza
digitare il termine.