Over time, I've become something of a desktop mimimalist. Sure, I'll change a few settings to my liking, but I no longer spend a lot of time customizing my desktop configuration. I've learned that if the defaults aren't reasonably close to correct out of the box, then the software is probably doomed anyway. For most users the default settings are the only settings.
One of the things I always have to change, much to my chagrin, is the default clipboard behavior. I originally wrote about this in 2005:
In this era of 3 GHz processors, 1 GB memory, and 500 GB hard drives, why is the Windows clipboard only capable of holding a single item? Sure, you have fancy multi-level undo and redo in applications like Microsoft Word and Visual Studio. But not the clipboard. It holds exactly one item. Copy another item to the clipboard and your previous clipboard item is irrevocably lost.
The only improvement since then, sadly, is in the PC specifications. Three years later, we're stuck with the same old single-item clipboard model. The clipboard isn't some obscure operating system feature, either. People use it all the time. There's actually hard data to back this up, at least for Word 2003:
Top 5 Most-Used Commands in Microsoft Word 2003
- Paste
- Save
- Copy
- Undo
- Bold
Together, these five commands account for around 32% of the total command use in Word 2003. Paste itself accounts for more than 11% of all commands used, and has more than twice as much usage as the #2 entry on the list, Save.
Granted, we're talking about a word processing program here, but we live in a copypasta culture. I find that even when I'm not writing, per se, I rely on my clipboard throughout the day. The clipboard is so important that Walter Mossberg specifically mentioned it as a negative in his iPhone review:
There's also no way to cut, copy, or paste text.
This is on a phone, mind you. I'm totally with Walt on this one; it applies to all smartphones. I was surprised how quickly I ran into situations where I wanted to copy and paste something on my Windows Mobile phone, but I couldn't figure out how to. It's not a crippling limitation, but it does illustrate how fundamental the clipboard is, even for the smallest of computers.
It always seemed strange to me that applications had to implement their own oddball per-app clipboard queues to spackle over deficiencies in the operating system's braindead "I can only remember one thing at a time" clipboard implementation. We've long since left the days of applications writing their own quirky little file open dialog behind, but it's somehow OK to implement your own wacky clipboard behaviors in Visual Studio, or Office?
If, like me, you'd prefer operating system level improvements in the clipboard, there are quite a few options out there. I've been quite happy with ClipX. After installing this lightweight little app, instead of pressing
Ctrl + Vto paste a single item, you can opt to press
Ctrl + Shift + Vwhereupon you're presented with a menu of recent clipboard items, in a nice visual menu browser format:
Your clipboard history is dynamically saved to disk and will survive a reboot, so you can begin to rely on your clipboard as a sort of quick and dirty digital scrapbook. Isn't that how it should have been all along?
I've become terribly reliant on this improved clipboard behavior, so I always install ClipX on any machine I'm working on. It has some additional default clipboard functions that I've also found quite useful:
Ctrl + Shift + Gperform a Google search using the contents of the clipboard.
Ctrl + Shift + Nopen a browser and navigate to the address in the clipboard.
It doesn't matter whether you specifically choose ClipX. It's these three key improvements in the operating system clipboard that I think are important:
It's a mystery to me why none of the major operating systems have bothered improving the clipboard. It seems entirely possible to add these enhancements without breaking the simple clipboard paradigms that have been around since the days of Xerox PARC.
Dang, I didn't use HTML, anyway, the string was "*MY NAME* is awesome!" That way anytime my boss pasted anything he would be reminded of my awesomeness.
BMS on January 22, 2008 12:18 PMPaste as Pure Text [http://www.stevemiller.net/puretext/]
John Robo on January 22, 2008 12:20 PMThe RIM Blackberry devices, for all their other failings, do ovver copy / paste functionality.
Richard Campbell on January 22, 2008 12:33 PMovver - offer.
Richard Campbell on January 22, 2008 12:34 PMStrange that people suggest "install linux and a desktop suite to get an add-in it comes with so you won't have to install one tiny add-in on the OS you work in"...
Then again, none of the Klipper screenshots suggest to me that it's overcome a horrible failing in the X clipboard - the inability to usefully copy/paste Ianything that isn't text/i.
Sure, Isome/i X software supports copy/paste of images, but most of it doesn't, and to my knowledge there's no Ione/i standard for how you do it.
Back on point, I've never really liked stack-simulating clipboards, myself, but that's my workflow.
I remember using things that did that sort of thing (their names escape me) as long ago as using System 7 on a 68k Mac, but it's never been worthwhile - for me.
Sigivald on January 22, 2008 12:36 PMWow! I developed the first significant clipboard extender for Windows (ClipMate) back in 1991. Since then, it's been in continual development.
Re: KeePass - if it uses the "CF_Clipboard_Viewer_Ignore" flag, ClipMate will ignore the data, so you can avoid capturing passwords.
Re: Needs to use something that costs money - don't worry, you can definitely PAY for ClipMate. It's $34.95, and we fill corporate and govt's orders all the time.
kris: Those of us (Iall of us, in the real world/i) working with a Ipointing device/i find a single-hand solution superior to a two-hand solution.
(And if I'm doing enough repetitive C+P to hurt my hand, I've got bigger problems than the particular keystrokes in use; if I had a two-hand key-combo I'd be going mad moving my hands around to position the cursor and switch contexts anyway.)
And insert doing copy Iand/i paste with different modifiers? Ugly. I can see the logic of insert+meta for paste, but copy? No, thanks.
DOS is dead and can stay there, even if I have to fill its mouth with garlic and put a knife over its neck.
Sigivald on January 23, 2008 1:18 AMThe Nokia S60 v3 Symbian phones do copy-paste, too.
It has been present since the first Symbian nokia phone, I remember copying/pasting on my 3650 (Symbian 6).
Besser Wisser wrote:
I wonder how clipboard monitors work in general when programs
put "application rendered" data on the clipboard.
Imagine if you're executing a copy/paste loop in a terminal window,
and ApplicationX suddenly (if only for a moment) changes the
clipboard contents.
I'm going to go ahead and assume you're talking about (or out of)
something else.
I'm not sure where you got the idea I was talking about programs modifying the clipboard while you were using other applications. That's not what I meant at all.
The Windows Clipboard API allows programs to put an item on the clipboard without actually putting the data into the shared clipboard memory, and thus without having to actually "render" (i.e. convert or translate into a generic format; it's called "render" in the API) the data. If another program then tries to paste that data a message is sent to the program that put it on the clipboard asking it to render it into real data, which is then passed to the program doing the pasting.
The advantage is that if nothing does end up pasting the data, or if something pastes it but using a more light-weight format, then the CPU and memory overhead of converting and storing the data is never used.
If you consider that the vast majority of clipboard operations are copy and pastes within the same application/window then you can conclude that this is often a useful mechanism.
However, if something is monitoring the clipboard and saving its history then every time an "application rendered" item is added to the clipboard, the clipboard history manager is going to have to request the data in full so that it can be stored. There's no mechanism to say to a program "Hey, can you render that data you put on the clipboard three days ago, before the last reboot?" so that's how it has got to work, I assume. That loses the advantages of "application rendered" data. The only question is whether those advantages still matter so much on modern computers. I suspect they do but only in a handful of applications (e.g. massive image editing).
PS: Thanks to everyone for the comments about Keepass. I expect it does set that flag to tell monitors to ignore its passwords, which sounds like a good solution all round. (I already use the autotype feature, but not with web pages as AFAIK there isn't a reliable way to ensure it types into the right box. The autotype feature is fantastic for password prompt dialogs from applications, though! I don't even know what most of my passwords are these days; Keepass generates them and types them for me.)
There is "clipboard ring" with same features in Visual Studio. and it also uses Ctr-Shift-V shortcut.
I have no time to read all the comments, I may be repeating.
I would consider it to be a nice improvement if the copy paste worked either like a stack or a queue. I guess a stack would make the most sense. It would break the whole multiple paste thing, but it wouldn't require any new buttons. I guess it would just confuse a lot of people.
Adam on January 23, 2008 1:55 AM@Cristophe
"pop from the clipboard stack" - well, for a stack model "pop" means remove, too ;). The idea of copying is that what's in the buffer doesn't get removed. Only having "top" (return data but don't move stack pointer) as an option renders it useless.
Rob Janssen on January 23, 2008 2:11 AMI wouldn't be shocked if Microsoft purposefully ignored improving the windows clipboard with the reasoning of "People who want a multi-item clipboard should just buy Office."
Or better yet: The windows team actually did come up with an unintrusive multi-item clipboard, but since it was so much better than the office clipboard they canceled it to avoid embarrassing the office team. :)
Matias on January 23, 2008 2:21 AMThose that keep mentioning the Linux distros as major operating systems...
Linux 'may' be major, but the splintering of the distros results in exactly the lack of recognition of 'major' when it comes to one of the distros that is a subset of an operating system that commands a nearly insignificant amount of desktops.
Mac on January 23, 2008 2:22 AMHi Jeff,
Thanks for the recommendation. I will give it a try.
Tod Birdsall on January 23, 2008 2:37 AMI've used a nearly unknown tiny utility for years: Hamsin Clipboard (http://www.iisr-cnc.com/hamsin/). I became addict to it. It's the first thing that I install on a fresh Windows. I can't live without it. I agree with Jeff that it's a must to have a better clipboard than the Windows default.
It works clicking on the program icon on the tray, or using handy shortcuts Win+1, Win+2....Win+0 to get the n-th item of the stack. It also have sticky favorites, accesed by the same shortcuts, but using the numeric pad instead of the standard numbers.
It's a pity that Hamsin doesn't have updates for years, it seems abandoned. The program has some bugs that never were fixed, and it could have been improved saving more than ten clips.
Thank god for ClipX. Otherwise I would be switching to linux. No question. Vista truly is a piece of .... when it comes to basic things like the clipboard. But hey, flip3D looks cool and that's all that matters right? If only visual studio ran on linux.
Jonathan Parker on January 23, 2008 4:19 AMinstall it once on a flash drive, along with all your other favorite stuff, then you won't have to "install it on every machine"
calcnerd256 on January 23, 2008 5:09 AM"I've learned that if the defaults aren't reasonably close to correct out of the box, then the software is probably doomed anyway."
I know someone else who thinks the same way. We should make a club! :)
Thorns on January 23, 2008 6:37 AMI don't see the problem much here, then again, my muscle memory is pretty good with Ctrl + C, Alt + Tab and Ctrl + V. I think adding the Shift key will just confuse things.
I would prefer it be like Alt + Tab. Initially, pressing Ctrl + V pastes the most recent item in the clipboard, and holding down Ctrl and pressing V allows one to cycle through the contents. When one releases the Ctrl key, the item selected gets pasted.
Jonathan Paul Madrid Abaca on January 23, 2008 6:38 AMI also use PTH Pasteboard on the Mac. Awesome app (and it actually does keep the contents through reboots). It has tons of additional features, such as ignoring items from certain applications (such as your keychain) so that your password doesn't get stored anywhere. You can have different pasteboards and show them on-screen so you get a quick overview over all of your stuff; you can set how many items to remember, and you can apply filters to copied things (such as fixing windows line endings, capitalizing text, and so on). It's an awesome application.
http://pth.com/products/pthpasteboard/
Something that I don't understand is all the resistance to this concept. ClipX doesn't alter Ctrl-C, Ctrl-V functionality at all, so if you need to copy and paste like you used to, it will always work for you. The Ctrl-Shift-V pops open a list of previously copied items and you can select which one you are interested. Again, it doesn't affect old functionality at all, so I don't get the fear.
Andy Stampor on January 23, 2008 10:21 AMI went to the site and tried it out. There was one thing missing. I had cobbled together some scripts that had a group of regular expressions and urls and if the contents of the clipboard matched an regex, then it would launch the the url (which had a grouping substitution in it from the regex). I sent an email about it to the author and he added a new Smart Navigiation Plugin to ClipX.
Here are a couple of my patterns:
Name: Bugzilla
Pattern to match: (bug|scr)?[\s:#]*(\d+)
Navigate to: http://bugzilla.inin.com/bugzilla/show_bug.cgi?id=\2
Name: Perforce
Pattern to match: (cl|change|changelist)[#:\s]+(\d+)
Navigate to: http://perforce.inin.com:8080/\2?ac=10
Name: Email Address
Pattern to match: ([A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4})
Navigate to: mailto:\1
Thanks for blogging on this! I am able to remove that old cobbled together script and get multiple clipboards to boot!
ChrisH on January 23, 2008 11:21 AMSmartphones have cut+paste but you can use it without showing the on screen keyboard and tapping ctr-c/ctr-v. Thats way too long winded to make it useable. On the WM5+ screen you can TAP+HOLD. You'll see little dots appear round the stylus point, which after about a second completes a full circle and then pops up the applications context menu, which on most apps has Cut/Paste on there too.
cheers,
Rob
Here is my blog entry on his new Smart Navigation Plugin.
http://www.thehubbards.org/blog/2008/01/23/reinventing-the-clipboard-reprise/
I can't say I like the idea of a persistent clipboard by default. Keeping track of all this copy/paste is the same as using a key logger in my opinion. Tell me, is this clipboard history available to all programs?
If you want history, use/write a journal or a snippets program (or just use Google notebook). Back in the day before nasty spy-ware apps, I'd say you're right on the money. Nowadays I'm not so sure the benefit outweighs the risk.
I might go a step further in the paranoid security game, and perhaps I'd like yet another windows pop-up, this time asking me if I'd like to allow Program X to see the real clipboard. Yes/No/Allow Once. If I say no, Windows doesn't need to let the program know it has no access to the real clipboard should I choose, and Copy/Paste would work as advertised internal to the application.
I also use KeePass and like the feature when you copy passwords, it clears the clipboard when it detects a paste operation has occurred. Windows should be telling the app 'Interactive User Pressed Copy' and 'Interactive User Pressed Paste, here's the token to retrieve the data', rather than the way it is.
I'd like to see:
- better drag and drop within and between apps.
- better 'paste special' or 'paste as' inside an app.
In summary, what's the problem? The clipboard as-is is 'good enough', and you're able to extend it enough to get your 'power user' application to run nicely. Does the OS really need more bloat?
Tech Links I found:
MSDN About the Clipboard
http://msdn2.microsoft.com/en-us/library/ms649012(VS.85).aspx
CodeProject ClipSpy+
http://www.codeproject.com/KB/clipboard/ClipSpyPlus.aspx
Note: I too like my Sony phone that allows mark-copy-paste. It's brilliant, and why did it take most phones so long to get this?
ClippyX on January 23, 2008 12:26 PMwhoever has time for searching for clipboard solutions should not be employed as a programmer.
offler on January 24, 2008 3:58 AMoffler: Whoever does not understand that time spent optimizing tools makes for better tool-use should neither be employed as either a programmer or a manager.
Brooks Moses on January 24, 2008 11:41 AMWhoa Jeff I just installed this puppy (Clipx)and man is it great. It's a HUGE time saver! Thanks for the tip!
o.s. on January 24, 2008 12:30 PMGreat Post. I actually just launched a product to help developers manage code snippets and everything else they copy and cut.
It docks to the edge of your screen so you can use it with any program. It can also be minimized to the tray or configured to autohide. And more related to this post, it monitors the windows clipboard saving everything you copy and paste.
David San Filippo on January 26, 2008 5:45 AMAAARGH! Don't mess with my sub-concious routines!!
Hmm, I'll just cut this sentence and--WHAT THE--There's a floating palette blocking my email! Go away!
Oh no! Now I've got too many items in the clipboard and I have to read a whole dialogue box. I dare not dismiss it without reading, because who knows what will be in my clipboard then? The oldest item? The second to last one? I've forgotten where I was going to paste this!
Maybe some time in Excel will help. Nice calming grid lines...Why are those marching ants still going? I don't need that selection any more! Must focus but my eyes keep getting drawn back to that animated border, can't...look...away!
thrax on January 26, 2008 12:32 PMIf you'd like to try a good freeware clipboard, try Hamsin Cliboard. It doesn't need installation so you can carry it with you and use it wherever you go, and it is only a few hundred k. What I like about it is not only does it save history if you desire and can give you a list of saved items,but you can also use the Win-key +1-10 to paste any of the last ten items.I use it to have my sig and other bits I use a lot saved as an easy to use portable macro. Now matter what app I'm in the short text bits I need are just Win+1-10 away!
kb on January 27, 2008 4:49 AMthrax: nothing happens when you cut a sentence, or paste for that matter, the dialog will never appear unless you specifically request it. It's here to let you go back to previous clipboards, not to make you think each time you use your clipboard in the normal fashion. duh.
I don't understand how people can dismiss this out of hand on the basis that it makes things more complicated, when the article actually mentions that: "you can OPT to press Ctrl+Shift+V", that should be a pretty good clue that unless you do opt to do that, the clipboard works the way it always has.
But I guess asking them to read the article before commenting on it is too much.
Bottom line, whether you use clipx or another of these tools, they are HUGE time savers, especially for developpers and writers. If you don't use your keyboard that much, then yeah, it's probably not that useful to you, but it certainly doesn't make copypasting any more complicated than it currently is, it just makes it more useful.
zuma on January 27, 2008 11:24 AMI'm not trying to sound like a linux troll, but Linux comes with 2 clipboards by default: the normal one, like you have in Windows, and a hidden one in the X server: whenever you select something, this is copied onto the hidden clipboard, and middle click pastes the contents.
This is useful for quick copy-pasting without interfering with your default clipboard.
I'm happy with this, because it's still just a one-action method, and doesn't make me search through a menu before pasting.
However, for the ones who do like the menu with a list of recent copies, in KDE there is an application that starts up at login by default, called Klipper, that does this exact thing. It even works when you log out and back in again, reboot, ...
Wim on January 30, 2008 11:56 AMhttp://www.controlc.com/ just came out recently, which saves your clipboard history to the web!
monsur on February 5, 2008 11:32 AMGreat Post. I actually just launched a tiny app to help people searching on Google using the clipboard.
Google It! is a simple, unobtrusive widget used to search the content of your clipboard automatically on Google. It's a snap to setup and works on Windows Vista and XP running .NET Framework 3.0.
To use Google It!, copy any text from any program, the Google It! widget will appear, click on it, it will then automatically search the content of the clipboard on Google.
http://www.zypto.com/labs/googleit/
http://www.zypto.com/labs/googleit/releases/latest/googleit.zip
http://www.zypto.com/labs/googleit/media/googleit-howtouse_800x600.wmv
Thank you Jeff for your great work!
Very very useful application, Jeff!
I have been using it for a couple of days, and I feel much more comfortable when copy-pasting text, code, or whatever.
Thanks so much for sharing this little things!
Indeed cut/copy and paste seem to be the most used commands. There used to be a Microsoft Office Keyboard (1998?) with seperate buttons on the left for cut/copy/paste - fantastic !!
I can't find a replacement anywhere. Any ideas?
Hey, Jeff, thanks. I read this post with a lot of interests.
I never used ClipX before. As you said in your article, "In this era of 3 GHz processors, 1 GB memory, and 500 GB hard drives, why is the Windows clipboard only capable of holding a single item", the single item is limited. That's why I could not copy all the output text in Visual Studio to the clipboard though computer's memory was enough.
I am going to install ClipX on my computer and I think I would be happy with it. :-)
Catherine Sea on February 15, 2008 6:29 AMI use MS Office Clipboard (2003) this way:
Command\ Provider\ Purpose\\
(Control c)\ Windows+Office\ Copy (default behavior) and add an item to the Office Clipboard\\
(Control v)\ Windows\ Paste (default behavior)\\
(Alt Shift f)\ ttenk\ Open the Office Clipboard (as the Task Pane in OfficeClipboard.doc; the Task Pane is given the keyboard focus)\\
(Up/Down)\ Office\ Select an item on the Office Clipboard\\
(Enter)\ Office\ Activate the selected item (copy it to the system clipboard)\\
(AppsKey d)\ Office\ Delete the selected item\\
(Control Shift f)\ ttenk\ [Effective in OfficeClipboard.doc] "Select all" + "Delete" + "Minize Window"\\
ttenk
May 6, 2008
+1 for Ditto, I've been using it for a month now after reading about it here, and I love love love it!
Frank on May 6, 2008 10:16 AMI could not more agree with you ! I use Ditto for a couple of years and when I use another computer with no Ditto in it I find it somewhat crippled with this stupid "one copy only" feature ;O)
Ditto is a bit "heavy" but very powerful and versatile: I use it also to store bit of texts (signatures, pieces of code, GMail searches,..), with shortcuts for the most used. One program for all others is really very convenient.
Regards.
I am writing a Visual Basic macro for Excel which requires that all of the items on the Office Clipboard be pasted to my document at once. To date, I have not found a command, function, routine, or key-combination which will accomplish this task for me. The Office Clipboard has a button which will paste all of the contents manually into the Excel document. When I create a simple macro using the Excel Macro facility, upon checking the Visual Basic code employed by Microsoft, all it does is repeat the Visual Basic paste command the number of times corresponding to the number of items stored on the Office Clipboard. Since my macro needs a generic paste command, function, or routine that determines exactly how many items are on the Office Clipboard in order to paste them, I am at a loss as to why Microsoft obscures this operation.
Howie Needleman on July 1, 2008 5:42 AMyour instead a popup menu may appear with all the previously copied items
like in this freeware windows utility ( check the demo )
http://www.xneat.com/many-paste/
Many Copy on August 30, 2008 9:21 AMI find it amusing that you would replace one of the simplest, easiest, and most intuitive features with a more complex version that requires hitting more keys to use effectively. The clipboard works fine. Why do you need to keep more than one thing? It's entire purpose is a transient, temporary storage for shuttling data between places. Why would I want some random clip of text to survive a reboot? I don't care about its life in the clipboard the exact moment I hit Command-V.
Jon Yurek on February 6, 2010 10:20 PMAnyone who works in Flash might want to change the default hotkey (or close clipx when in Flash)
As flash already has a CTRL+SHIFT+V set (paste in place, when you copy an object CTRL+SHIFT+V pastes it back at the same x,y)
It would be better if clipx didn't over-ride settings from other applications when that app is in focus. Or at least allowed you to set that kind of behavior.
Aaron Bassett on February 6, 2010 10:20 PMI too was frustrated by the way clipboard history captures passwords from Keepass, but after reading these comments I went and looked at the Keepass documentation. There's a feature called auto-type that types the password for you instead of using the clipboard. There's even a flavour that combines keystrokes with cut-and-paste so that both keyloggers and clipboard spies will have a hard time sniffing a password. The details are here:
http://keepass.info/help/base/autotype.html
Don Kirkby on February 6, 2010 10:20 PMI haven't tried any clipboard tools apart from a bad one for OSX. If I've needed to keep a scrapbook of text I either just open notepad/textedit or use JEdit's QuickNotepad plugin.
I think we haven't had mainstream advanced clipboard because it's hard to do. Even if it is a large benefit, it's probably only going to be for a small number of users. The simple copy and paste we all know and love (or hate) works just well enough and is easy to implement and is easy for users to understand, even if they can't see what's on the clipboard. Plus, even though I've thought it might be useful, I've never used the Office 2003 clipboard, even though I can't seem to turn it off.
As for RSI, it's slightly easier on the Mac because I use my thumb on the CMD key rather than my little finger on PC keyboards. Most keyboards also have two CTRL keys and the proper way to use all modifier keys is with one hand for the modifier key and the other for the letter key. The thing is, using X/C/V (and B for paste and go in Opera) means you /can/ work with you left hand on the keyboard and your right on the mouse. That and I can never remember which is which for CTRL and shift+INSERT. X is obviously cut, C is copy and V is paste, because it's beside copy.
John Ferguson on February 6, 2010 10:20 PMTime does not stand still.
There are many more useful clipboard managers.
E.g. http://windowsclipboard.com/
The comments to this entry are closed.
|
|
Traffic Stats |