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 (ci saranno poi anche i buffers con 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
    • comando unico equivalente a d0d$ e cancella anche il newline finale

Ammettono ripetitori, p.es.:

  • 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)

Ha esattamente la stessa sintassi del comando d di cancellazione. Il materiale indicato viene copiato nel buffer senza nome e non viene cancellato dal file.

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
    • comando unico equivalente a y0y$ e copia anche il newline finale

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. Il cambiamento viene considerato una singola operazione, viene ricordato, ed è possibile ripeterlo.

Vi Change

. (punto) ripeti ultimo cambiamento o cancellazione

Cancellazione o modifica avanzate

Consentono risparmio di battiture.

  • 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 il carattere c
    • p.es. rx rimpiazza il carattere corrente con una x
  • 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

E' praticamente impossibile che qualcuno si ricordi 26 buffers simultaneamente. Di solito ne vengono usati uno o due. Non devono necessariamente essere usati in ordine alfabetico.

results matching ""

    No results matching ""