I’m always fascinated that someone designed just about everything you use, no matter how trivial it is. The keyboard you type on, the light switch you turn on, even the faucet handle. They don’t just spontaneously grow on trees, so some human being had to build it and probably had at least a hazy design in mind when they started it.
Some things are so ubiquitous that it is hard to remember that someone had to dream them up to begin with. A friend of mine asked me the other day why we use Control+X and Control+V to manipulate the clipboard almost universally. Control+C for copy makes sense, of course, but it is still odd that it is virtually universal in an industry where everyone likes to reinvent the wheel. I wasn’t sure of the answer but figured it had to do with some of the user interface standards from IBM or Sun. Turns out, it is much older than that.
Back When CTRL-C Only Meant Break
If you recall, though, Control+C hasn’t always been synonymous with copy. Control+C was well known as a break command in TOPS-10, CP/M, MSDOS, and several other systems. This might have been because C was for “cancel” or it could be because the ASCII for “end text” is Control+C. So I knew there was some point in relatively recent history where the control keys took over the world.
Then again, the clipboard itself isn’t that old and it also needed inventing. Pentti Kanerva, from Stanford, was using delete buffers to hold text for later, a technique that caught the attention of Larry Tesler. Larry worked for Xerox PARC — the people who more or less invented the graphical user interface. In the book, Designing Interactions by Bill Moggridge, there is mention that the team was already working on cut and paste of elements as part of a desktop publishing application for Ginn and Company, and they knew of Kanerva’s work. It was a natural idea to extend the cut and paste concept to text.
The only problem with the original system was the wording of “delete” sounded too permanent. Early PARC software sent deleted things to a trashcan and set cut things to a wastebin. Talk about confusing. The new cut and paste metaphor also used fewer keys than Kanerva’s system.
It may seem obvious now, but the right way to move text around was highly debatable back then. While some designers favored the cut/copy/paste method we have now, others wanted a move/copy/delete/transpose. This is more akin to how some older systems like WordStar did things. The commands operated on a block of text on the screen with no intermediate step. Even the ideas of putting the cursor between letters, the shape of the cursor was not obvious at the time.
The Xerox Alto was ahead of its time and it offered a graphical text editor, Gypsy. This 1975 word processor did allow cut and paste as we know it. However, the commands used the Escape key. As far as I can tell, the actual control commands we think of today originated with the Apple Human Interface Standard.
The Apple Standard
Bruce Tognazzini, otherwise known as Tog, was an early and influential Apple employee and wrote much of the original standard for the 1984 Macintosh. However, there were many people involved and you can catch a video of Larry Tesler and others discussing the early history of Apple GUI and the PARC influence on it, below.
According to the video, the team knew that people would use cut, paste, copy, and undo quite a bit and they wanted a standard way to do that across applications. The official story is that C was for copy, X looks like a crossout or a pair of scissors, and V looks like an insertion mark. The Z just happens to be the next character in that cluster–we might well have had Control+B as undo.
It is hard to remember, but Apple didn’t always set market direction. IBM’s Common User Access (CUA) standard came out in 1987 and — not wanting to conflict with Control+C as a break character — defined different characters for cut, copy, and paste. This was three years after the Apple document and early versions of Windows used these keys. However, the Control+C,V,X trinity was so prevalent, that Windows eventually allowed both sets of characters. Today, programs like emacs support CUA mode which allows for Control+C,V,X even though those weren’t in the original CUA standard.
Unix would see a similar effort to standardize on the Common Desktop Environment as part of the Common Open Software Environment in 1993, nine years after the Apple document. By that time, most programs had already adopted what we think of as normal keystrokes.
Today it seems only natural how the clipboard works and the keystrokes you use. Programs that buck this trend — I’m looking at Eagle — take a lot of flack for making you pick a command like copy and then making a selection.
Still, I’m struck by how many times a casual decision winds up becoming a big thing. Which way do electrons flow? How many buttons should a mouse have? To their credit, the Apple team seemed to understand that even tiny decisions could become a big deal and they put a lot of thought into things.
What causal decision will you make this week that will have a far-reaching impact? Most of us won’t get a chance to set the keystrokes used by everyone on the planet. But how many times have you written a quick shell script that turns into something used for years, or made up a quick cable that becomes a permanent part of a lab setup? Something to think about before your next causal hack.
90 thoughts on “The Origin Of Cut, Copy, And Paste”
The Mother Of All Demos contains an even earlier copy-paste example.
I switch between using a MacBook Pro and PC every day; The C and V drives me nuts.
Or how Mac uses Shift+click to select items one at a time while Windows uses Ctrl+Click for that and two Shift+click to select one item and everything between it and the second item Shift+clicked. Mac uses the Command key with that odd icon on it for that.
Some cross platform software goes so far as to use the Mac selection way on Windows. Is there any Windows software ported to Mac that uses the Windows way?
GUIs and their APIs were supposed to make computers easier to use and software easier to write by providing a common interface and the ‘framework’ of lower level operation so users didn’t have to learn all the differences in every program – learn to use one and you know nearly all you need to use any. But programmers still insist on *not* following standards and creating their own versions of what the OS already has. When an OS provides a common file dialog box, why oh why create your own from scratch? Of course Microsoft’s Office suite has taken their own user interface standards and brutally murdered them in a dirty back alley for years. Adobe is also a serial offender, Apple too. Remember the hideous mess of QuickTime 4?
IBM’s CUA was a good idea. Too bad that they themselves violated it. My comment after being forced to use Lotus Notes: “Designed by aliens, for aliens”.
The command key of today replaced the “Open Apple” key, which itself comes from a pair of Apple// keys (open-apple and closed-apple) which actually are the two joystick buttons duplicated onto the keyboard.
The original intent of Command was the same as the Meta key. Command is a far more apt name, as meta/command are used to run command shortcuts.
Copy/Paste are commands that manipulate the clipboard, thus command-c or meta-c.
Control-C is a literal character not different from an “A” (both have ascii codes), and alt-C would refer to the alternate graphic character. Since a clipboard copy doesn’t type a text character, neither control or alt are appropriate modifiers.
It’s really not that tricky. Where you use the control key on a PC, you use the command key on a Mac, and vice-versa. This goes also for other things like ctrl-w or cmd-w to close a tab, ctrl-b or cmd-b to toggle between bold and normal text, ctrl-n or cmd-n to open a new window, ctrl-t or cmd-t to open a new tab, ctrl-i or cmd-i to open a file, ctrl-s or cmd-s to save, ctrl-z or cmd-z for undo, and a few others. I use Mac, Windows, and Linux, and really, the biggest issue I have is that the scroll wheel goes different directions.
Incidentally, I am definitely not a Mac fanboy, but after a while the use of command instead of control on the Mac makes some sense when you use terminal windows, because there, ctrl-c STILL means “break”. There are also other advantages, like you can use cmd-c and cmd-v to copy and paste in command windows (even in editors like vi), where in Linux you would have to do ctrl-alt-c and ctrl-alt-v. So basically, using the cmd key as a modifier avoids conflicts with the “standard” control keys used in Unix.
What’s Shift+Tab (reverse/back Tab from last field or focus) on a Mac?
In Firefox it’s cmd-`, but I’m not sure that’s something used by most applications.
Windows scrolling = down moves the ‘thumb’ down, which scrolls the window’s content UP.
Mac scrolling = down moves the window’s content down.
When Microsoft introduced the mouse wheel, their choice of which way to have scrolling work was obvious. If the user moves the pointer onto the thumb and click drags, which way do they move the mouse to to pull the thumb toward the bottom of the screen to scroll the content up? Towards them. So the bleedin’ obvious, not at all confusing way to have the wheel scroll without click-dragging work is to roll the wheel towards the user so it’s the same motion as clicking and moving the whole mouse. Click-drag scrolling on Mac works the same way, but for some reason if you use a wheel Apple chose to make it work opposite.
In most Windows software where the wheel controls zoom, rolling forward zooms your POV in and rolling back zooms your POV out. The Mac way is of course the opposite, it “pushes” and “pulls” the *content*, and that behavior tends to be emulated in publishing software for Windows like Adobe InDesign (which also carries over the Mac’s opposite to Windows selection keys). The 3D modeling software I use is POV focused while InDesign is content focused – and it’s the only program I use on Windows where all the controls work bass-ackwards.
So whenever I do a service call on a Macintosh, I gotta get into the mindset of Opposite Day on a few things.
Yes, much clearer on macs. Control is for control characters, and command for commands!
Windows machines didn’t have an equivalent to the command key until the windows key arrived, far too late, so the misuse of control to mean command was set on windows.
Macs can reverse the mouse scroll direction – it defaults to the Windows way on mice with physical wheels, and to the more natural (phone) way on mice/magic pads with touch.
Still surprises me that we don’t have multiple cut/paste buffers.
MS Office used to allow for multiple items on the clipboard. I don’t use office much these days, but the last time I did, it seemed to have lost/moved the functionality.
Yeah, every time you copied something to the clipboard in old Office, the “Clippy” character would pop up and offer you a bunch of hard to understand options about what to do next. This behavior was almost impossible to stop until someone figured out to entirely disable Clippy. That was the end of multiple clipboard options in Office. This is a time-honored example of how Microsoft comes up with what could be genuinely useful user-interface improvements, that are destroyed by bad user-interface implementation. Take the “Ribbon” for example – ugh. That reputation continues through today. Have you noticed how lately Microsoft is step-by-step destroying/hiding everything that is really useful in Control Panel?
Urrgh, the MS Office Ribbon – one of the most un-intuitive UI I’ve ever encountered. 14 or so years on and I still need to google simple functions and still have to endure poorly written guides that leave me wondering if I’m supposed to be looking for a Ribbon Heading or a function / icon on a particular ribbon. Oh the days of “On the file menu select the settings option, click the “network” tab and …”.
I also wonder if MS consider the far-reaching consequences of the cosmetic UI changes they make to Outlook every time they release a new version which reduces the usable vertical screen space and email list view? (at a time when low res wide screen crappy laptop displays prevail!)
Windows has it — hit the windows key, type “clip” and click on “Clipboard Settings”, then turn on Clipboard History
Didn’t realize was included with Win10. Looks like there is a work around for Win7.
“Unlike XP, the clipboard cannot be viewed in Windows 7. You need a copy of clipbrd.exe from an XP computer. It is located in C:\WINDOWS\system32. Copy it into the same folder in Windows 7 and to run it, click the Windows Orb (Start), type clipbrd and press Enter.”
I know I worry about not exporting my “Clipboard History” extension from Chrome. Very handy tool indeed. At times however has error’d out and gone. Never really looked into if there is a limitation or what?
X11 Have 2.
But not wayland.
No, it has three!!!!! “Primary selection”, “Secondary selection” and “Clipboard selection”. And the answer is in this article!!! “move/copy/delete/TRANSPOSE”
In the first document to standardize X11, ICCCM, ( https://tronche.com/gui/x/icccm/sec-2.html#s-2.6.1 ) explains that the “Secondary selection” is used “As the second argument to commands taking two arguments (for example, “exchange primary and secondary selections”)” Clearly the designers of X11 wanted to allow to implement the “Transpose” operation. Then, in the document from Freedesktop that finally standardized the CUT/COPY/PASTE operations for Gnome and KDE, it explains that there are those three buffers, but only two are used and can’t imagine any practical use for the third ( https://specifications.freedesktop.org/clipboards-spec/clipboards-0.1.txt )
If you’re doing the ‘doze….
Thought there was some type of this on some versions of android, not sure if was a value added thing on certain manufactures devices.
My galaxy S8 has something where it saves a bunch of stuff that’s been copied. Dunno how many copy actions it keeps before popping the oldest one off. I never remember it’s there.
What’s this “we” business, paleface? emacs has always supported this, “we” have been enjoying it for decades now.
Same for vi. ‘Named buffers’. Twenty-six of the little beauties, plus one unnamed buffer. They’ve been there for a very long time.
I just checked and bash does indeed support multiple cut buffers.
But we do! Windows uses different buffers for different types of data. It just doesn’t offer the option to pick & choose. Of course there are also programs that can extend the number of Copy/Paste buffers.
This may be the case for some applications that handle their own copy buffers, but the standard Windows behavior is to replace everything in the clipboard when you cut/copy something. This allows cut objects to have multiple representations so the application can decide what a paste or drop does. For example, if you copy a picture, the clipboard can contain both the picture bitmap as well as a text link to the picture’s file path, and the application you paste or drop it into can decide which is more appropriate. This would just confuse things if you had separate clipboards for text and pictures.
That’s what Windows notepad is for ;)
I bet Clippy could do it!
exactly… THIS. +1
i always wondered why anyone would need anything other then notepad for managing the clipboard.
unlimited “slots” (how many copies of notepad can you run at a time)
unlimited size (well, almost, but it holds the windows registry or the DOOMFAQ just fine)
can save for unlimited startups/shutdowns/days
original formatting is CLEARLY visible (plain ascii text eg: tabs remain as tabs, spaces remain spaces)
can simultaneously view multiple “slots” by tiling open windows (more with 2nd monitor)
do not need to open/view to manage/delete
“slot” name can be up to 255 chars (minus the .txt)
saved files can be easily copied/sent or opened back up
bonus: strips all non-text formatting for safe link-checking while browsing; using MSoffice to linkcheck could get dicey as you are pasting from an HTML page to an XML page… XML is web-like… and we all know how secure and reliable webpages are…
I couldn’t live without a clipboard manager that keeps a history of the buffers for me.
Same here. I have often thought about building my own macro keyboard that had a screen next to each button which would let you juggle multiple clipboards and see what is currently in theme. Someday.
Tis a shame that something like ctrl-c-1 ctrl-c-2 etc for ten buffers wasnt ever implemented in Windows 1 and windows 2.0, and followed all the way through.
Not built in, but I’ve been using ArsClip for years.
Several times I’ve installed software to do it, and removed it. It’s never as useful as you think, and it’s usually confusing to use.
The only thing I’ve stuck with is an OSX utility called drop shelf, which allows you to pin clipboard contents or files to little shelves at the edge of the screen. Great for sorting a pile of stuff to then be copied/moved at once. I think it works because it’s visual, and doesn’t interfere with normal clipboard usage.
Also, sublime text has multiple position copy/paste functionality – great for manipulating multiple lines at once, though it’s not really multiple buffers.
On the Mac, try Alfred.
It has an endless paste buffer you can scroll through and paste from.
It also has keystroke macros. See that blockquote above? I copied the text I wanted to quote, clicked where I wanted it to appear, then hit CTRL-OPT-CMD-V followed with “b”, and the blockquote of my copy buffer appears.
Press Win+V to invoke the multiple paste
The old IBM standards used Shift-Delete for cut, Shift-Insert for paste, and Ctrl-Insert for copy. Windows 10 still supports those as well as Ctrl-C, Ctrl-X, Ctrl-V. I still remember the cognitive dissonance of seeing “Use Ctrl-C to copy…” in old manuals and documents and thinking “No, that’s Break, things will go horribly wrong!” until I caught up with the common usage.
I still use this, and it annoys me greatly when I have to use a keyboard that has the Insert key removed (like all Apple appliances).
I think it’s also much more convenient from the ergonomic point of view, but that may be just because I am accustomed to it.
It’s also a nuisance, because some text boxes don’t allow pasting with ctrl-v, but shift-insert works. But.. windows
don’t forget ye olde shift-del, control-ins, shift-ins! lol. It took me a while to re-condition my muscle memory when the change to the current scheme took place. Now when I fiddle with retro-computing, I have to remember olde habits.
I think those still work in the shell.
Actually it is probably the terminal program (e.g. xterm) which passes the pasted text to a shell as if it was typed, rather then the shell itself. bash has its own cut buffer filled with “mass kill” keystrokes like (C-u, C-w or Del and BS with a numeric argument) and pasted from with C-y.
Heh whoops, DOS shell, power shell, CLI, command prompt. not Bourne again shell
Emacs has the kill ring, kill for copy and yank for paste. Meta yank to loop through the kill ring.
The names may not be the same, but the function is more useful.
My favourite emacs tool: rectangular selection. Few other tools have such available. Very useful in building software, moving data around as CSV or TSV files, and so on
Its support for gdb debugger integration is superb, makes visual studio look poor in comparison.
An editor for Windows with support for doing a vertical text selection would be very nice, especially for doing things like deleting or adding spaces at the beginning of multiple lines, or poking a TAB in the middle of multiple lines.
There is a mature and complete port of gnu emacs for windows, works great, does everything you want.
I think notepad++ has vertical selection behind alt, IIRC.
Notepad++, with the TextFX plugin probably does what you want.
Or you could just use VIM for windows. It can also do that.
Notepad++ does so but not as nicely as Textpad, which is surprisingly still around. I keep it for a number of timesaving features mostly centered around text block handling.
See if you can find a copy of CodeWright
-C for Break… That brings me back a ways. Like far enough back that I wasn’t too bothered that my IBM PC-XT computer only had 256k of RAM, though I did eventually get my hands on the 36 RAM chips needed to upgrade it to 512K. I really don’t miss those days at all.
Sorry, I meant “Control-C”.
And having to swap chips between banks because the system would fail to boot if an individual chip failed in the first 16k, but posted an address if it was in the latter 3/4ths of the chip…damn, that was a long time ago. Like you said, don’t miss it at all.
Back in the good old DOS days i used The Semware Editor which offered user defined, CUA and WordStar. Everybody knew the WordStar key combos in those days… are they still used?
Sure, joe’s own editor, commonly known as joe (https://joe-editor.sourceforge.io/), uses Wordstar key combos.
Not everyone. Many of us used epsilon or microemacs, been using the same commands since multics emacs in the 1980s.
I used WordStar for CP/M on a Xerox 820-II.
so did I, and this means that both 820 users are still alive!
I grew up in the space between Emacs and Wordstar key bindings and both were ok. Everything was doable without special keys, shift, esc and control were enough. I miss that!
Sure arrow keys and ins/del and other addons are nice, but I can get angry if they are not optional and some bindings of programs have no oldstyle alternatives.
Less is more!
More than less has to be optional!
I still can’t bring myself to press Ctrl+C in case the program aborts, I use Shift+Delete. I didn’t even realise that is considered “the old way”, it seems to work in everything.
What I would really like is a keyboard with dedicated Cut, Copy and Paste keys, I am surprised nobody seems to make one.
My keyboard has six keys that I can program to do anything I want.
KeyPro FK9000 had 12, with a NiCd battery backup, and the numpad doubled as a calculator, but unfortunately the calc doesn’t send its output down the cord to the computer.
I use a Sun Microsystems Type 7 keyboard with a Solaris thin client. This has dedicated cut, copy, paste keys, as well as undo, open, and a few others.
At home I have a Corsair gaming keyboard with a load of macro keys that can be programmed on a per application basis for various games or whatever software is currently running.
The various versions of the Microsoft Office Keyboard have those keys, at least one has a scroll wheel. Unfortunately that one (dunno about others) has its dual function F-Keys default to the non-F-key functions during POST so to get into BIOS with one, you must hold the function shift key first, then the F-key needed to get into setup. If not for that “feature” I’d probably still use one.
The one that really bugs me is cmd-W/ctrl-W for close window. As far as I know, it first appeared in MS Word 1.0 for Mac, over 30 years ago. Back in those days I had been using ResEdit to assign cmd-K for Close. It’s just way too easy to hit Q by accident and have to restart your app, and that has happened to me hundreds of times.
And Eagle? Don’t all CAD programs have a pretty bad UI? At least their schematic and board editors are relatively consistent with each other, unlike KiCad.
What about the cut buffer in X11? Select text by dragging the LMB then copy to a UI element or terminal emulator with the MMB.
The middle mouse button is the best feature in X11, I miss it very much on other platforms. Nothing like it anywhere else.
In Windows, clicking the wheel or middle button is open link in new tab as the default in web browsers. Can be changed to do other things.
Can you change it to “copy the selected contents in the other window and paste it into this one”? I doubt it.
X11 doesn’t have buffers. It has selections. This is one way in which people used to WIndows find Linux confusing. If you select something in one app, and want to paste it into other, but you have already closed the first app, it won’t work. The data is copied when you paste, not when you select.
This is wrong, I just did an experiment where I copied text in X11 and closed the window. Then I did a paste and it worked fine.
I still do Shift-Del, Ctrl-Ins, Shift-Ins since my DOS days. It has always worked in windows and linux. When I used macs back then it was only [%]-XCV not control or command so there was no relation for me to use them elsewhere with Ctrl
The Apple stuff was no accident. Jef Raskin (who I worked for) was studying human interface design and how to handle text creation and editing long before, when he was teaching at U.C. Davis. I am pretty sure he was at Engelbart’s demonstration in San Francisco in 1968 or saw the films shortly after. I also recall one of Raskin’s students was at PARC. Anyway, one of his three rules was the principle of monotony or that everything in the interface should work the same with no surprises.
After reading his books, I don’t think Jeff Raskin would ever design system that keeps a hidden buffer for the text. He was radically against invisible internal states that you have to remember.
He designed the Canon Cat which can have any text, hidden calculations, or even code, or a whole doc in the “copy-up” buffer. It is still there if you power cycle.
But yes. He had left Apple by the time everything was finalized (Jobs took over Jef’s Mac project) and launched Information Appliance from his house.
Visual studio, SQL server management studio, visual studio code, and notepad++ all have this if you are willing to use your mouse for it: hold down ALT and select the text with the mouse cursor.
I used the original cut, copy and paste when writing my final year project in 1978. Plus a secretary to type it up for me.
Thankfully I have never had to have such discipline again.
MSAccess used ctl-break to stop programs….only not too many keyboards have break keys anymore
You’ve ignored the origins of the terms. In the old days (perhaps even now) newspapers, magazine, etc would type out their articles and cut the paper out and paste them to layout boards, determining how best to organize the sheets.
Ctrl+ C,V,X,Z,& A (which I use just the right hand) is the primary reason I can’t use the Dvorak keyboard to program. I can type normally on either, but I use the Control functions way too much while programming.
Other than F, I,B,& U, I can’t even think of what the other Control functions would be. Even then, I don’t normally use Ctrl+F, instead use F3 for “Find”
Yeah, that’s what I was really expecting to read about in this article.
I think the origin of Ctrl-C,V and X is from Smalltalk. The Byte magazine (I forget the issue #, the one with the balloon on the cover in the early 80s) article on Smalltalk showed and discussed the Smalltalk editor used on the Xerox Alto and it had those same keyboard controls
I get kids to remember it simply by
C for Copy
X as Scissors to Cut
V as a down arrow (to past down)
Always made sense to me, Never really questioned the origin.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)