Question

Is there any way to force Visual Studio to copy selected code to the clipboard as unformatted text?

When I am copy-pasting code into Word or more often Outlook I have to do it via Notepad to get rid of the formatting...there has to be an easier way!

Was it helpful?

Solution

Visual Studio does put unformatted text on the clipboard, but it also puts formatted text. (The clipboard supports multiple simultaneous formats, and the OS assumes that they're simply different representations of the same data, although there's no technical enforcement of that point.)

The application you're using to paste then chooses its preferred format. In Word, and maybe Outlook as well, there is a "Paste Special" command that allows you to choose which format you want to use.

OTHER TIPS

My department uses PureText. Sits in the system tray; copy text, click-it - strips all formatting leaving the plain-vanilla text. I'm sure it's much like PlainTextClipboard.

"PureText is basically equivalent to opening Notepad, doing a PASTE, followed by a SELECT-ALL, and then a COPY. The benefit of PureText is performing all these actions with a single Hot-Key and having the result pasted into the current window automatically."

The goad for this was flaky Lotus Notes; likes to crash when pasting HTML-marked-up-text that I innocently copied from a web-page....

If you press CTRL+Z after pasting, it will reverse to the non-formatting one, because the formatting actually counts as one step after the regular paste.

From this blog post I got these instructions for getting rid of the black background when copying & pasting out of VS with the 'Dark Theme' activated, but the html in it can be tweaked to alter the rest of the formatting as required (e.g. set all text to black).

If required, install Productivity Power Tools

Open Tools → Extensions and Updates

Select Online (Visual Studio Gallery) and search for Productivity Power Tools 2012/2013

Download and restart Visual Studio when prompted

Productivity Power Tools Settings

Open Tools → Options → Expand Productivity Power Tools select HTML Copy

Change the BeforeCodeSnippet option to:

<style type="text/css">.identifier {color:black !important;}</style>
<pre style="{font-family}{font-size}{font-weight}{font-style}">

Change EmitSpanClass to: True

Check EmitSpanStyle is: True

When I do it choosing the little pop-up menu option attached to the wee clipboard item "Match Destination Formatting" does the trick for me.

You might find http://www.extrabit.com/plaintextclipboard/ to be a useful tool. Some applications have a paste option which strips formatting, but what you really need is a copy operation that strips formatting, which VS does not offer.

In Outlook 2007, I've changed my default paste to do text only. Go to Editor Options | Advanced Under the "Cut, copy, paste" heading choose Pasting from other programs: [Keep Text Only]

And if you still want to paste formatted (less often in my case), use paste special...

The Visual Studio Extension Copy for review may be handy for you. Actually, it does not do unformatted copying, but applies it's own simple text-based template.

It supports a "Stack Overflow" format, which just removes the leading whitespace, while keeping the indentation as much as possible, and introduces some sort of header.

Get it from the from the Visual Studio Gallery and try it out.

Disclosure: I am the author of that Extension. Please notfiy me, if I can improve it to your needs.

This Microsoft Office site offers a workaround that involves writing a macro to replace ctrl+v functionality to paste plain text all the time, but that may not be what you want. You can alternatively remap an unused shortcut (ctrl+?) to provide you with this functionality so you don't have to keep enabling / disabling the macro.

For applications that do not have a "paste special" you could use an application like PureText

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top