Taglia e Incolla

Comandi con prefisso

Permettono di compiere le operazioni di cut, copy e change.

Hanno la struttura

prefisso [ripetizioni] comando_di_movimento

I prefissi sono

  • d - delete - cancellazione
  • y - yank - copia
  • c - change - cambiamento

L'operazione si estende dal carattere corrente a quello raggiunto col comando di movimento

  • Il numero di ripetizioni si riferisce al comando di movimento
  • Il materiale cancellato, copiato o cambiato viene conservato nel buffer senza nome
    • E' poi possibile il paste coi comandi p o P
  • Il comando u (undo) disfa la cancellazione, copia o cambiamento
    • in vim l'undo è multilivello

Cut (delete)

d + movimento:

Vi Cut

Esempi:

  • dw cancella fino a inizio parola successiva
  • de cancella fino a fine parola
  • d^ cancella fino a inizio riga
  • d$ cancella fino a fine riga
  • d’a cancella fino a riga marcata con a
  • d3+ cancella fino a tre righe dopo
  • dG cancella fino a fine file
  • dd cancella intera riga

Ammettono ripetitori:

  • 10dw 10 volte dw (come d10w)
  • 5dd 5 volte dd (anche d5d)

Paste (put)

Vi Put

Semplicemente posizionarsi alla destinazione desiderata e premere:

  • p dal buffer a dopo il carattere o la linea corrente
  • P dal buffer a prima del carattere o della linea corrente

Se sono state tagliate/copiate delle linee, queste verranno incollate dopo/prima la linea corrente del cursore.

Se sono stati tagliati/copiati dei caratteri, questi verranno incollati dopo/prima il carattere corrente.

Copy (yank)

y + movimento:

Vi Yank

Esempi:

  • yw copia fino a inizio parola successiva
  • ye copia fino a fine parola
  • y^ copia fino a inizio riga
  • y$ copia fino a fine riga
  • y’a copia fino a riga marcata con a
  • y3+ copia fino a tre righe dopo
  • yG copia fino a fine file
  • yy copia intera riga

Ammettono ripetitori:

  • 10yw 10 volte yw (come y10w)
  • 5yy 5 volte yy (anche y5y)

Modifica (change)

c + movimento + versione nuova + Escape:

Dopo il c + movimemto la versione precedente scompare e si entra in modalità inserimento.
Digitare la nuova versione e premere Escape: il cambiamento è finalizzato.

Vi Change

. (punto) ripeti ultimo cambiamento o cancellazione

Cancellazione o modifica avanzate

  • x cancella singolo carattere corrente
  • D cancella fino a fine riga (= d$ )
  • C cambia fino a fine riga (= c$ )
  • Y copia fino a fine riga (= y$ )
  • rc rimpiazza carattere corrente con c
  • R entra in modalità “replace”: ogni carattere successivo sostituisce il carattere corrente. Terminare con Escape.
  • ~ Cambia carattere corrente da maiuscolo a minuscolo o viceversa e avanza a carattere successivo

Buffers con nome

Vi sono 26 altri buffer disponibili oltre quello senza nome.

  • Nomi dalla a alla z
  • Preceduti da " (doppio apice)
  • Prima di comandi delete, yank, change, put

Vi Namedbuffers

Esempi

  • ”adw - cancella parola a buffer a
  • ”zy’c - copia da qui a linea marcata con c e poni nel buffer z
  • ”zp - paste dal buffer z