# Presse-papiers (informatique)

En informatique, un presse-papier (ou presse-papiers selon l'orthographe toujours utilisée dans les dernières versions de Windows et macOS) est une fonctionnalité qui permet de stocker des données que l'on souhaite dupliquer ou déplacer. Il utilise une zone de la mémoire volatile de l'ordinateur, pouvant contenir des informations de nature diverse (texte, image, fichier, etc.). Cette information est stockée en zone mémoire lorsqu'elle a fait l'objet d'un appel à la fonction copier ou couper du système d'exploitation ou d'un logiciel. Elle est réutilisable par la suite par l'appel de la fonction coller, qui replace l'objet.

## Fonctions de base

La sémantique du presse-papier varie d'un environnement à l'autre, et peut également varier selon les versions d'un même système d'exploitation. Elle peut parfois être modifiée par un programme ou selon les préférences de l'utilisateur, ce qui peut conduire à une certaine frustration de l'utilisateur qui utilise des environnements dotés de sémantiques du presse-papier différentes, d'autant que les opérations « copier » et « coller » sont souvent inscrites dans la mémoire musculaire de l'utilisateur.
La plupart des environnements ne gèrent qu'une seule transaction à la fois dans le presse-papier. Chaque couper ou copier écrase le contenu précédemment sauvegardé. Normalement, l'opération coller copie le contenu, le laissant disponible dans le presse-papier pour des réutilisations futures.
La plupart des environnements n'enregistrent pas le contenu du presse-papier pour une sauvegarde de longue durée : lorsque l'utilisateur ferme sa session ou redémarre son système, le contenu du presse-papier est vidé.

## Formats de fichiers

Les premières implémentations du presse-papier sauvegardaient les données en texte brut, sans méta-informations telles que la police d'écriture, le style d'écriture ou la couleur. Les implémentations les plus récentes gèrent différents formats de données, permettant l'enregistrement de structures de données complexes. Celles-ci couvrent de nombreux formats de texte mis en forme tels que le RTF ou le HTML, ainsi qu'une large gamme de formats bitmap et d'images vectorielles, et gèrent aussi les formats de données complexes telles que les tableurs et les bases de données.
Par exemple, couper une série de cellules dans un tableur et les coller dans un autre tableur devrait préserver les données et les formules sous-jacentes, et devrait même transcrire les références intra-cellulaires, afin qu'un calcul de somme s'étendant sur une sous-sélection des cellules incriminées soit converti pour faire référence aux nouvelles copies de ces cellules.
Lorsque des données sont ajoutées au presse-papier par une application, cela les rend disponibles dans autant de formats de données différents que possible. Ceci inclut les formats natifs et bruts (ou les plus répandus) qui auraient plus de chances d'être reconnus par une grande variété d'applications. Ainsi, lorsque les données sont copiées dans une autre application, le format le plus proche du format natif de cette application peut être utilisé, conservant autant que possible les données originales. Sous Microsoft Windows en particulier, la fonctionnalité du presse-papier convertira automatiquement les données des formats complexes connus à des formats plus simples (comme du RTF au texte brut, ou du texte au format Unicode vers format ANSI), augmentant la probabilité que n'importe quelle application puisse interpréter l'une des formes des données originales.

## Gestionnaire de presse-papier

Les environnements graphiques modernes intègrent généralement un gestionnaire de presse-papier qui gère de multiples opérations couper et coller. Dans ce modèle, le presse-papier est considéré comme une pile ou un album, où les nouveaux couper et copier sont placés au tout début de la liste des dernières transactions. L'opération de copie standard copie la transaction la plus récente, tandis que des opérations de copier spécifiques donnent accès aux autres transactions sauvegardées en mémoire. Ces gestionnaires disposent aussi généralement d'une fenêtre qui affiche l'historique des transactions et permet à l'utilisateur de sélectionner des copies antérieures, de les modifier, de changer leur format et même d'utiliser une fonction de recherche.

## Presse-papiers spécifiques à des systèmes d'exploitation
### Microsoft Windows

Dans certaines versions du système d'exploitation Microsoft Windows, le contenu du presse-papier peut être visionné à tout moment en utilisant le « Gestionnaire de l'Album » (Clipboard Viewer, ou Clipbook Viewer), accessible depuis le fichier clipbrd.exe. Dans les versions plus anciennes de Windows, la technique habituelle était d'ouvrir un éditeur tel que le Bloc-Notes (Notepad) ou Wordpad, et d'y coller le contenu du presse-papier. Le Gestionnaire de l'Album a été supprimé dans Windows Vista.
Les opérations de copier-coller sont accessibles le plus souvent par le menu « Édition », ainsi que par le menu contextuel obtenu par un clic droit dans la fenêtre ou la zone depuis laquelle copier ou vers laquelle coller le contenu.
Des raccourcis clavier permettent aussi de couper, copier et coller. Les raccourcis standards de Windows sont :
* Ctrl + C pour copier des données dans le presse-papier
* Ctrl + X pour couper des données vers le presse-papier
* Ctrl + V pour coller des données depuis le presse-papier
Raccourcis alternatifs (disponibles dans de nombreux programmes sous Windows) :
* Ctrl + Inser pour copier
* Shift + Suppr pour couper
* Shift + Inser pour coller
L'avantage des raccourcis alternatifs est que les doigts peuvent rester près des touches directionnelles quand on édite un long bloc de texte.
Sous Windows, le presse-papier est aussi la destination des captures d'écran générées lors de l'appui sur la touche Impr. écran. L'appel de la fonction coller permet alors de récupérer une copie fidèle de l'écran, tel que le voit l'utilisateur.

### Mac OS X

Dans le système d'exploitation Mac OS, le contenu du presse-papier peut être visionné en sélectionnant l'élément « Voir le presse-papier » (Show Clipboard) dans le menu Édition du Finder.
Les raccourcis standards de Mac OS sont :
* Command + C pour copier des données dans le presse-papier
* Command + X pour couper des données vers le presse-papier
* Command + V pour coller des données depuis le presse-papier
Un kill-ring de style Emacs (ou "anneau mort") contenant toutes les zones copiées ou coupées depuis le lancement d'Emacs) est également disponible en tant que presse-papiers secondaire uniquement textuel. Cela fonctionne dans toutes les applications qui utilisent des zones de texte avec Cocoa.
* Ctrl-k pour copier à partir du curseur jusqu'à la fin de ligne.
* Ctrl-y pour couper du "kill-ring" au curseur.

### X Window System (Linux, Unix...)

Le système X Window, généralement utilisé avec les systèmes d'exploitation Unix et Linux, fournit une implémentation du presse-papier par sélections (en). Les sélections sont asynchrones, donc les données sont copiées et converties au format désiré seulement sur demande.
L'usage de la gestion de sélections variées n'est pas standardisé. Cependant, la plupart des environnements de bureau modernes tels que GNOME ou KDE suivent une convention largement reconnue, définie dans la spécification freedesktop.org.
Une sélection, CLIPBOARD, est utilisée pour les sémantiques de presse-papier traditionnelles, avec des raccourcis (clavier) similaires à ceux de Windows :
* Ctrl + C pour copier des données dans le presse-papier
* Ctrl + X pour couper des données vers le presse-papier
* Ctrl + V pour coller des données depuis le presse-papier
Une autre sélection, PRIMARY, est un mécanisme spécifique de X11. Les données sont copiées immédiatement à la sélection et collées à l'aide du troisième bouton de la souris (bouton du milieu). Elle est généralement indépendante de la sélection CLIPBOARD et ne modifie pas son contenu.
L'utilisateur de tels systèmes possède donc, en règle générale, deux presse-papiers distincts.