如何粘贴不带格式的文本?

如何粘贴不带格式的文本?

我在网上找到的唯一答案是使用 Ctrl+Shift+V,但这个答案已经有近十年的历史了,现在不再有效。我试图将文本从 Evince PDF 阅读器复制到其他应用程序(Anki 或 gedit),但它通常会显示格式,这很烦人。

格式化的意思是复制文本时保留其原始格式。例如,如果我从 Evince 复制此文本。

在此处输入图片描述

然后尝试将其粘贴到另一个应用程序中,它显示如下。 在此处输入图片描述

我想要实现的目标是粘贴时不带格式(在本例中是缩进),使其看起来有点像这样。

另一张图片

我在 Ubuntu 21.10 上。

答案1

您定义为“格式化”,即由于空格或制表符而产生的换行符或空白,是不是格式。这些由诸如回车符、空格符或制表符之类的字符表示。

粘贴到 gedit 或终端时,这些字符会被保留。文字处理器可能包含的格式代码不会被保留。

您唯一的选择是在将文本粘贴到目标之前对其进行更改。在文本编辑器中,您可以替换制表符、多个空格、换行符。这是 Linux,也可能是自动化(感谢 Lumo 提供链接)。

可以执行此操作的脚本可以归结为:

#!/bin/bash
SelectedText="$(xsel)"
ModifiedText="$(echo "$SelectedText" | \
     sed 's/\.$/.|/g' | sed 's/^\s*$/|/g' | tr '\n' ' ' | tr '|' '\n')"
echo "$ModifiedText" | xsel -bi

第一行将剪贴板中的当前文本复制到剪贴板。第二行对其进行修改(在此脚本中,只处理新行,没有空格或制表符),第三行将结果放回到剪贴板,准备粘贴。

将此类脚本放入您的 中~/.local/bin,使其可执行,然后将其绑定到快捷键。从 PDF 复制文本后,请记住在粘贴之前按下该快捷键。

当前示例仅适用于 Xorg。Ubuntu 21.10 默认为 Wayland。xclip或者xsel不适用于 Wayland,因此应使用软件包中的wl-copy和进行替换。wl-pastewl-clipboard

相关内容