# Copia e incolla

Copia e incolla (in inglese copy and paste), in informatica, è un diffuso e semplice modo, implementato nelle interfacce grafiche dei sistemi operativi per riprodurre e spostare testo o altri dati da una posizione all'altra (di un file o tra file diversi).

## La locuzione

Il concetto, ideato da Larry Tesler nella primavera del 1975, si riferisce al metodo popolare e semplice di riprodurre testo o altri dati da un'origine a una destinazione. Differisce da "Taglia e Incolla" in quanto il testo o i dati di origine originali non vengono cancellati o rimossi. La popolarità di questo metodo deriva dalla sua semplicità e dalla facilità con cui gli utenti possono spostare i dati tra varie applicazioni visivamente senza ricorrere alla memorizzazione permanente.
Una volta copiati i dati negli appunti, è possibile incollare il contenuto degli appunti in un documento di destinazione.
Il Sistema X Window mantiene un blocco appunti aggiuntivo contenente il testo selezionato più di recente; facendo clic con il tasto centrale, il contenuto di questa "selezione" viene incollato su qualsiasi puntatore sia puntato in quel momento.
La funzione di copia trasferisce, creandone una copia, un qualunque set di dati (testi, immagini o altro) dal programma di origine in un'area di memoria RAM nota come Appunti. Da qui i dati possono essere incollati in un altro programma, sempre che quest'ultimo sia in grado di riconoscere il loro formato. Ad esempio, non sempre è possibile incollare del testo in un programma specializzato per l'elaborazione di suoni, e viceversa.
L'idea del copia e incolla è risultata così popolare ed utile da essere estesa praticamente a tutto: i file sul disco possono essere copiati e incollati in posizioni diverse, i fogli di calcolo copiano ed incollano interi grafici, eccetera. Cosa può essere copiato o incollato è completamente sotto il controllo del singolo programma, e non del sistema operativo. Si è però evoluto un sistema di convenzioni grazie al quale si usano sempre le stesse combinazioni di tasti (ad esempio, Ctrl+C per copiare e Ctrl+V per incollare su Microsoft Windows, ⌘ Cmd+C per copiare e ⌘ Cmd+V per incollare sui sistemi Macintosh, la pura selezione col mouse per copiare e il tasto centrale e/o destro su Unix, e così via, più altri metodi come i menu contestuali o pulsanti vari).
Versioni più sofisticate permettono di usare più aree di memoria contemporaneamente, al prezzo però di complicare un poco i comandi che l'utente deve dare: occorre, oltre a dare il comando di copia o incolla, specificare anche su quale delle aree di appunti si vuole operare.
Un ulteriore vantaggio del copia e incolla è che in genere non utilizza l'unità a disco, risultando perciò molto veloce. Questo può non essere più vero nel caso in cui vengano copiati dati molto voluminosi, che superano la capacità di memoria fisica del computer costringendo il sistema operativo ad utilizzare la memoria virtuale sul disco.
Se invece di riprodurre si intende spostare i dati rimuovendoli dalla posizione originale, si ricorre al taglia e incolla, o al drag and drop (trascina e rilascia).

## Descrizione

Nell'interazione uomo-macchina copia e incolla sono comandi correlati che offrono una tecnica di comunicazione interprocesso interfaccia utente per il trasferimento dei dati. Il comando cut rimuove i dati selezionati dalla sua posizione originale, mentre il comando copia crea un duplicato; in entrambi i casi i dati selezionati sono conservati in uno strumento di memorizzazione temporaneo chiamato Appunti. I dati negli appunti vengono successivamente inseriti nella posizione in cui viene emesso il comando incolla. I dati sono disponibili per qualsiasi applicazione che supporta la funzionalità, consentendo quindi un facile trasferimento dei dati tra le applicazioni.
I nomi dei comandi sono una metafora dell'interfaccia basata sulla procedura fisica utilizzata nella modifica del manoscritto per creare un layout di pagina.
Questa tecnica di interazione ha strette associazioni con tecniche correlate nelle interfacce grafiche utente che utilizzano dispositivi di puntamento come un mouse per computer (mediante trascinamento della selezione, ad esempio).
La capacità di replicare le informazioni con facilità, cambiandola tra contesti e applicazioni, implica problemi di privacy a causa dei rischi di divulgazione quando si gestiscono informazioni sensibili. Termini come la clonazione, la copia in avanti, il riporto o il riutilizzo si riferiscono alla diffusione di tali informazioni attraverso documenti e possono essere soggetti a regolamentazione da parte di organi amministrativi.

## Trova e vai

Il sistema operativo NeXTStep ha esteso il concetto di avere un buffer a copia singola aggiungendo un secondo buffer di ricerca a livello di sistema utilizzato per la ricerca. Il buffer di ricerca è disponibile anche in macOS.
Il testo può essere inserito nel buffer di ricerca utilizzando il Pannello trova o selezionando il testo e premendo ⌘ + E.
Il testo può quindi essere cercato con Trova Successivo ⌘ + G e Trova Precedente ⌘ + D.
La funzionalità è utile quando ad esempio si modifica il codice sorgente. Per trovare l'occorrenza di una variabile o di un nome di funzione altrove nel file, basta selezionare il nome facendo doppio clic, premere ⌘ + E e poi saltare alla ricorrenza successiva o precedente con ⌘ + G / ⌘ + D.
Nota che questo non distrugge il tuo buffer di copia come con altre interfacce utente come Windows o il sistema X Window.
Insieme a copia e incolla, questo può essere utilizzato per la sostituzione rapida e semplice del testo ripetuto:
* seleziona il testo che vuoi sostituire (cioè facendo doppio clic)
* inserisci il testo nel buffer di ricerca con ⌘ + E
* sovrascrivi il testo selezionato con il testo sostitutivo
* seleziona il testo sostitutivo (prova ⎇ + ⇧ + ← per evitare di sollevare le mani dalla tastiera)
* copia il testo sostitutivo ⌘ + C
* trova l'occorrenza successiva o precedente ⌘ + G / ⌘ + D
* incolla il testo sostitutivo ⌘ + V
* ripetere gli ultimi due passaggi tutte le volte che è necessario o in breve:
* selezionare ⌘Ctrl+Ins + E , replstr, ⎇ + ⇧ + ← , ⌘ + C , ⌘ + G , ⌘ + V , ⌘ + G , ⌘ + V ... Anche se all'inizio potrebbe sembrare un po' complicato, spesso è molto più veloce rispetto all'utilizzo del pannello di ricerca, specialmente quando devono essere sostituiti solo alcuni casi o quando solo alcune delle occorrenze devono essere sostituite. Quando un testo non deve essere sostituito, premi di nuovo ⌘ + G per saltare all'occorrenza successiva. Il buffer di ricerca è a livello di sistema. Cioè, se si immette un testo nel pannello di ricerca (o con ⌘ + E ) in un'applicazione e si passa a un'altra applicazione, è possibile avviare immediatamente la ricerca senza dover inserire nuovamente il testo di ricerca.

## Copia e incolla l'automazione

Copiare i dati uno ad uno da un'applicazione all'altra, ad esempio da Excel a un modulo Web, potrebbe richiedere molto lavoro manuale. Copia e incolla può essere automatizzata con l'aiuto di un programma che consente di scorrere l'elenco dei valori e incollarli nella finestra dell'applicazione attiva. Tali programmi potrebbero venire sotto forma di macro o programmi dedicati che coinvolgono più o meno script. In alternativa, è possibile utilizzare applicazioni che supportano la modifica simultanea per copiare o spostare raccolte di elementi.

## Uso in sanità

Sono state sollevate preoccupazioni sull'uso delle funzioni di copia e incolla nella documentazione sanitaria e nelle cartelle cliniche elettroniche. Esiste la possibilità di introdurre errori, sovraccarico di informazioni e frodi.

## Uso nello sviluppo del software

La programmazione "copia e incolla" è un anti-pattern derivato dall'azione ripetitiva copiare e incollare con poca attenzione codice pre-esistente in un altro file di codice sorgente.

## Altre combinazioni

La funzione di "Copia" può essere ottenuta anche con la combinazione dei tasti sulla tastiera Ctrl+Ins. La funzione di "Incolla", invece, può essere ottenuta anche con la combinazione ⇧ Maiusc+Ins.