In human–computer interaction and user interface design, cut, copy and paste are related commands that offer an interprocess communication technique for transferring data through a computer’s user interface. The cut command removes the selected data from its original position, while the copy command creates a duplicate; in both cases the selected data is kept in temporary storage (the clipboard). The data from the clipboard is later inserted wherever a paste command is issued. The data remains available to any application supporting the feature, thus allowing easy data transfer between applications.
The command names are an interface metaphor based on the physical procedure used in manuscript editing to create a page layout.
This interaction technique has close associations with related techniques in graphical user interfaces (GUIs) that use pointing devices such as a computer mouse (by drag and drop, for example). Typically, clipboard support is provided by an operating system as part of its GUI and widget toolkit.
The capability to replicate information with ease, changing it between contexts and applications, involves privacy concerns because of the risks of disclosure when handling sensitive information. Terms like cloning, copy forward, carry forward, or re-use refer to the dissemination of such information through documents, and may be subject to regulation by administrative bodies.
The term “cut and paste” comes from the traditional practice in manuscript-editings whereby people would cut paragraphs from a page with scissors and paste them onto another page. This practice remained standard into the 1980s. Stationery stores formerly sold “editing scissors” with blades long enough to cut an 8½”-wide page. The advent of photocopiers made the practice easier and more flexible.
The act of copying/transferring text from one part of a computer-based document (“buffer”) to a different location within the same or different computer-based document was a part of the earliest on-line computer editors. As soon as computer data entry moved from punch-cards to online files (in the mid/late 1960s) there were “commands” for accomplishing this operation. This mechanism was often used to transfer frequently-used commands or text snippets from additional buffers into the document, as was the case with the QED text editor.
The earliest editors (designed for teleprinter terminals) provided keyboard commands to delineate a contiguous region of text, then delete or move it. Since moving a region of text requires first removing it from its initial location and then inserting it into its new location, various schemes had to be invented to allow for this multi-step process to be specified by the user. Often this was done with a “move” command, but some text editors required that the text be first put into some temporary location for later retrieval/placement. In 1983, the Apple Lisa became the first text editing system to call that temporary location “the clipboard”.
Earlier control schemes such as NLS used a verb—object command structure, where the command name was provided first and the object to be copied or moved was second. The inversion from verb—object to object—verb on which copy and paste are based, where the user selects the object to be operated before initiating the operation, was an innovation crucial for the success of the desktop metaphor as it allowed copy and move operations based on direct manipulation.
Many command line text editors, which predate their more popular GUI equivalents, including: ed, emacs, sed, and vi, have copy-paste features.
Inspired by early line and character editors that broke a move or copy operation into two steps—between which the user could invoke a preparatory action such as navigation—Lawrence G. “Larry” Tesler proposed the names “cut” and “copy” for the first step and “paste” for the second step. Beginning in 1974, he and colleagues at Xerox Corporation Palo Alto Research Center (PARC) implemented several text editors that used cut/copy-and-paste commands to move/copy text.
Apple Computer widely popularized the computer-based cut/copy-and-paste paradigm through the Lisa (1983) and Macintosh (1984) operating systems and applications. Apple mapped the functionalities to key combinations consisting of the Command key (a special modifier key) held down while typing the letters X (for cut), C (for copy), and V (for paste), choosing a handful of keyboard shortcuts to control basic editing operations. The keys involved all cluster together at the left end of the bottom row of the standard QWERTY keyboard, and each key is combined with a special modifier key to perform the desired operation:
- Z to undo
- X to cut
- C to copy
- V to paste
The IBM Common User Access (CUA) standard also uses combinations of the Insert, Del, Shift and Control keys. Early versions of Windows used the IBM standard. Microsoft later also adopted the Apple key combinations with the introduction of Windows, using the control key as modifier key. For users migrating to Windows from MS-DOS this was a big change as MS-DOS users used the “copy” and “move” commands.
Similar patterns of key combinations, later borrowed by others, remain widely available today in most GUI text editors, word processors, and file system browsers.
The original copy/cut/paste workflow, as implemented at PARC, utilized a unique workflow: With two windows on the same screen, the user could use the mouse to pick a point at which to make an insertion in one window (or a segment of text to replace). Then, by holding shift and selecting the copy source elsewhere on the same screen, the copy would be made as soon as the shift was released. Similarly, holding shift and control would copy and cut (delete) the source. This workflow requires many fewer keystrokes/mouse clicks than the current multi-step workflows, and did not require an explicit copy buffer. It was dropped, one presumes, because the original Apple and IBM GUIs were not high enough density to permit multiple windows, as were the PARC machines, and so multiple simultaneous windows were rarely used.
Cut and paste
Computer-based editing can involve very frequent use of cut-and-paste operations. Most software-suppliers provide several methods for performing such tasks, and this can involve (for example) key combinations, pulldown menus, pop-up menus, or toolbar buttons.
- The user selects or “highlights” the text or file for moving by some method, typically by dragging over the text or file name with the pointing-device or holding down the Shift key while using the arrow keys to move the text cursor.
- The user performs a “cut” operation via key combination Ctrl+x(⌘+x for Macintosh users), menu, or other means.
- Visibly, “cut” text immediately disappears from its location. “Cut” files typically change color to indicate that they will be moved.
- Conceptually, the text has now moved to a location often called the clipboard. The clipboard typically remains invisible. On most systems only one clipboard location exists, hence another cut or copy operation overwrites the previously stored information. Many UNIX text-editors provide multiple clipboard entries, as do some Macintosh programs such as Clipboard Master,and Windows clipboard-manager programs such as the one in Microsoft Office.
- The user selects a location for insertion by some method, typically by clicking at the desired insertion point.
- A pasteoperation takes place which visibly inserts the clipboard text at the insertion point. (The paste operation does not typically destroy the clipboard text: it remains available in the clipboard and the user can insert additional copies at other points).
Whereas cut-and-paste often takes place with a mouse-equivalent in Windows-like GUI environments, it may also occur entirely from the keyboard, especially in UNIX text editors, such as Pico or vi. Cutting and pasting without a mouse can involve a selection (for which Ctrl+x is pressed in most graphical systems) or the entire current line, but it may also involve text after the cursor until the end of the line and other more sophisticated operations.
When a software environment provides cut and paste functionality, a nondestructive operation called copy usually accompanies them; copy places a copy of the selected text in the clipboard without removing it from its original location.
The clipboard usually stays invisible, because the operations of cutting and pasting, while actually independent, usually take place in quick succession, and the user (usually) needs no assistance in understanding the operation or maintaining mental context. Some application programs provide a means of viewing, or sometimes even editing, the data on the clipboard.
Copy and paste
The term “copy-and-paste” refers to the popular, simple method of reproducing text or other data from a source to a destination. It differs from cut and paste in that the original source text or data does not get deleted or removed. The popularity of this method stems from its simplicity and the ease with which users can move data between various applications visually – without resorting to permanent storage.
Once one has copied data into the clipboard, one may paste the contents of the clipboard into a destination document.
The X Window System maintains an additional clipboard containing the most recently selected text; middle-clicking pastes the content of this “selection” clipboard into whatever the pointer is on at that time.
Most terminal emulators and some other applications support the key combinations Ctrl-Insert to copy and Shift-Insert to paste. This is in accordance with the IBM Common User Access (CUA) standard. For similar functionality in historical text-mode terminals in Unix systems such as Linux and FreeBSD, see GPM or moused.
Find and go
The NeXTStep operating system extended the concept of having a single copy buffer by adding a second system-wide Find buffer used for searching. The Find buffer is also available in macOS.
Text can be placed in the Find buffer by either using the Find panel or by selecting text and hitting ⌘+E.
The text can then be searched with Find Next ⌘+G and Find Previous ⌘+D.
The functionality comes in handy when for example editing source code. To find the occurrence of a variable or function name elsewhere in the file, simply select the name by double clicking, hit ⌘+E and then jump to the next or previous occurrence with ⌘+G / ⌘+D.
Note that this does not destroy your copy buffer as with other UIs like Windows or the X Window System.
Together with copy and paste this can be used for quick and easy replacement of repeated text:
- select the text that you want to replace (i.e. by double clicking)
- put the text in the Find buffer with ⌘+E
- overwrite the selected text with your replacement text
- select the replacement text (try ⎇+⇧+←to avoid lifting your hands from the keyboard)
- copy the replacement text ⌘+C
- find the next or previous occurrence ⌘+G/ ⌘+D
- paste the replacement text ⌘+V
- repeat the last two steps as often as needed
or in short:
- select ⌘+E, replstr, ⎇+⇧+←, ⌘+C, ⌘+G, ⌘+V, ⌘+G, ⌘+V …
While this might sound a bit complicated at first, it is often much faster than using the find panel, especial when only a few occurrences shall be replaced or when only some of the occurrences shall be replaced. When a text shall not be replaced, simply hit ⌘+G again to skip to the next occurrence.
The find buffer is system wide. That is, if you enter a text in the find panel (or with ⌘+E) in one application and then switch to another application you can immediately start searching without having to enter the search text again.
Common keyboard shortcuts
|Apple||⌘ Command+X||⌘ Command+C||⌘ Command+V|
|Windows/GNOME/KDE||Control+X / ⇧ Shift+Delete||Control+C / Control+Insert||Control+V / ⇧ Shift+Insert|
|GNOME/KDE terminal emulators||Control+⇧ Shift+C / Control+Insert||Control+⇧ Shift+V / Control+⇧ Shift+Insert
(⇧ Shift+Insert for pasting selected text)
|Common User Access||⇧ Shift+Delete||Control+Insert||⇧ Shift+Insert|
|Emacs||Control+w (Cut / Wipe out)||meta+w (Copy)||Control+y (Paste / Yank)|
|vi||d (delete)/dd (delete line)||y (yank)||p (put)|
|X Window System||click-and-drag to highlight||middle mouse button|
Copy and paste automation
Copying data one by one from one application to another, such as from Excel to a web form, might involve a lot of manual work. Copy and paste can be automated with the help of a program that would iterate through the values list and paste them to the active application window. Such programs might come in the form of macros or dedicated programs which involve more or less scripting. Alternatively, applications supporting simultaneous editing may be used to copy or move collections of items.
Additional differences between moving and copying
In a spreadsheet, moving (cut and paste) need not equate to copying (copy and paste) and then deleting the original: when moving, references to the moved cells may move accordingly.
Windows Explorer also differentiates moving from merely copy-and-delete: a “cut” file will not actually disappear until pasted elsewhere and cannot be pasted more than once. The icon fades to show the transient “cut” state until it is pasted somewhere. Cutting a second file while the first one is cut will release the first from the “cut” state and leave it unchanged. Shift+Delete cannot be used to cut files; instead it deletes them without using the Recycle bin.
Several editors allow copying text into or pasting text from specific clipboards, typically using a special keystroke-sequence to specify a particular clipboard-number.
Clipboard managers can be very convenient productivity-enhancers by providing many more features than system-native clipboards. Thousands of clips from the clip history are available for future pasting, and can be searched, edited, or deleted. Favorite clips that a user frequently pastes (for example, the current date, or the various fields of a user’s contact info) can be kept standing ready to be pasted with a few clicks or keystrokes.
Similarly, a kill ring provides a LIFO stack used for cut-and-paste operations as a type of clipboard capable of storing multiple pieces of data. For example, the GNU Emacs text editor provides a kill ring. Each time a user performs a cut or copy operation, the system adds the affected text to the ring. The user can then access the contents of a specific (relatively numbered) buffer in the ring when performing a subsequent paste-operation. One can also give kill-buffers individual names, thus providing another form of multiple-clipboard functionality.
Use in healthcare
Concerns have been raised[by whom?] over the use of copy and paste functions in healthcare documentation and electronic health records. There is potential for the introduction of errors, information overload, and fraud.
Pejorative use of expression
Main article: Cut and paste job
An action can be described as “cut/copy-and-paste” in a pejorative sense, to mean that a person creating some item has, in fact, merely copied from a previously existing item. Examples may include film screenplays, books, and other creative endeavors that appear to “lift” their content substantially from existing sources, and papers submitted for examinations which are directly copied from other reference sources.
Use in software development
Copy and paste programming is an anti-pattern arising from the careless pasting of pre-existing code into another source code file. Shared interfaces (“abstract classes”) with the same named methods should be exposed, and each module should subclass the interface to provide needed differences in functionality.
- Control key
- Cut and paste job
- Drag and drop
- Publishing Interchange Language
- Simultaneous editing
- X Window selection
- ^ Jump up to:ab Laubach, Lori; Wakefield, Catherine (June 8, 2012). “Cloning and Other Compliance Risks in Electronic Medical Records” (PDF). Moss Adams LLP, MultiCare. Archived (PDF) from the original on August 20, 2014. Retrieved April 23, 2014.
- ^Deutsch, L. Peter; Lampson, Butler W. (1967), “An online editor”, Communications of the ACM, 10 (12): 793–799, 803, doi:10.1145/363848.363863, archived from the original on 2013-05-26, p. 793.
- ^Kuhn, Werner (1993). “Metaphors create theories for users”. Spatial Information Theory A Theoretical Basis for GIS. Springer: 366–376.
- ^“Bill Moggridge, Designing Interactions, MIT Press 2007, pp. 63–68”. Designinginteractions.com. Archived from the original on 2011-11-17. Retrieved 2011-11-25.
- ^“Clipboard Master”. Clipboard Master 2.0 by In Phase Consulting, July 1994. Retrieved 14 September 2009.
- ^“GKB (Generic Knowledge Base) Editor user’s manual”. Artificial Intelligence Center. SRI International. Archived from the original on 2011-09-27. Retrieved 2011-11-25.
- ^“GNU Emacs manual”. Gnu.org. Archived from the original on 2011-11-26. Retrieved 2011-11-25.
- ^“Appropriate Use of the Copy and Paste Functionality in Electronic Health Records” (PDF). American Health Information Management Association. March 17, 2014. Archived from the original (PDF) on March 12, 2016. Retrieved April 23, 2014.