我可以默认粘贴纯文本吗?

Nat*_*ong 59 windows clipboard copy-paste windows-xp text-formatting

我经常在电子表格、电子邮件、浏览器窗口等之间复制和粘贴文本。我想不出有一次我想要保留源文本的格式。

我已经知道以下解决方法:

  • 使用“编辑”?“特殊粘贴” ?“无格式文本”
  • 粘贴到记事本并从那里复制
  • 安装一个接管剪贴板的程序

我想要的是告诉 Windows 默认情况下只执行此操作。

这可能吗?

小智 29

这是一个相当不错的妥协:PureText

纯文本截图

这可能不是您所问问题的直接答案,但这可能对其有更一般版本的问题的其他人有用。


RBe*_*eig 25

抱歉不行。我相信这是设计使然。

问题是 Windows 剪贴板不必存储数据。它实际上是一个交换所,任何应用程序都可以在其中列出刚刚复制(或剪切)的数据,并将其提供给任何应用程序(包括其自身)进行粘贴。剪贴板包含数据可用的格式列表,如果应用程序选择这样做,数据本身也会采用其中一些格式。

然后,处理粘贴操作的应用程序可以选择最适合它的数据格式。某些应用程序(例如记事本)仅接受一种特定格式(例如纯文本),并且如果该格式不可用则不执行任何操作。其他人默认选择首选格式,但提供一个用户界面,用于在该应用程序可以理解的替代方案中进行选择。

原则上,可以编写一个程序来监视剪贴板中的新内容并将任何非文本内容扁平化为纯文本。有一个事件可以通知这样的监视器剪贴板上的新内容。但是,我怀疑实施这样的事情会破坏相当多的程序,并且可能会以令人惊讶的方式破坏。

股票 XP 中的简单解决方法是在需要时使用记事本将数据展平,或者使用通过实现堆栈、提供其内容视图等来改进剪贴板的众多工具之一。

如果您想尝试自己构建一个工具,可能会从SO 上的这个问题及其相关问题中受益....


Dan*_*ker 12

默认情况下没有办法做到这一点,但通过一些hackery,我们可以解决这个问题。

你会需要:

使用以下代码创建 AutoIt 脚本:

$ptcPath = "C:\Program Files (x86)\Plain Text Clipboard\PlainTextClipboard.exe"
HotKeySet("^v", "PastePlainText")

While True ;Keep it running indefinitely.
WEnd
HotKeySet("^v") ;unregister the hotkey

Func PastePlainText()
    Run($ptcPath);
    Send(ClipGet())
EndFunc
Run Code Online (Sandbox Code Playgroud)

当您按Ctrl+ 时V,这将运行 PlainTextClipboard 程序,然后将剪贴板的内容发送到当前窗口。不幸的是,它一次发送一个字符的内容,所以有点慢。这是我正在解决的一个问题,但它应该作为一个合理的开始。如果有任何 AutoHotKey/AutoIT 专家,请随意制作您自己的此脚本版本。一旦我弄清楚如何解决问题,我会更新它。


Sha*_*mer 6

我也一直遇到这个问题。除了使用/编写程序来去除额外的格式之外,我发现去除格式的最简单方法是将文本粘贴到“运行”窗口(可通过WIN+访问R)并从那里重新复制它。

所以我很快就这样做了:CTRL+ C, WIN+ R, CTRL+ V, SHIFT+ HOME, CTRL+ C, ALT+ TAB, CTRL+ V- 我现在不禁怀疑我是否已经这样做太久了......

不过,仅适用于单行文本。


akf*_*akf 5

我无法为您提供简单的解决方案,但与其他人一样,我将为您提供解决方法:

快捷方式到你的第一个选择是使用Ctrl+ Alt+v弹出选择性粘贴对话框中不使用鼠标。键入u以跳转到未格式化的 Unicode 文本条目(或u u进入非 Unicode 版本),然后Enter将为您完成。不完美,但内置。