The Origin Of Cut, Copy, And Paste

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.

Early PARC

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.

CUA

IBM CUA from 1988 via the Internet Archive

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.

Our Designs

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

      1. 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?

        1. 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.

        2. 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.

          1. 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.

          2. 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.

      1. 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?

        1. 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!)

        1. 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.”

          https://answers.microsoft.com/en-us/windows/forum/windows_7-windows_programs/where-is-the-clipboard-on-windows-7/3bf718eb-5c47-e011-90b6-1cc1de79d2e2

      1. 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 )

      1. 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.

    1. 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.

      1. 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.

      1. 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…

    2. 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.

    3. we don’t have multiple cut/paste 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.

  1. 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.

    1. 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.

  2. 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.

      1. 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.

      1. 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.

  3. -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.

    1. 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.

  4. 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?

    [Ctrl-KX]

    1. 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!

  5. 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.

      1. 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.

    1. 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.

  6. 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.

    1. 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.

  7. 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

  8. 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.

    1. 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.

  9. 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.

  10. 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.

  11. 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”

  12. 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

    Dave

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.