从 RStudio 控制台复制文本为 "plain text"

Copy text from RStudio console as "plain text"

有没有一种简单的方法可以将 RStudio 控制台中的 selected 输出复制为纯文本?

例如,我有这个输出:

然后当我 select 将它复制到另一个应用程序(例如 MS Word 或 WPS Office)时,我总是得到这种丑陋的格式:

我知道我可以 "Keep text only" 在 MS Word 中(例如粘贴后立即按 Ctrl-T)和其他应用程序中的类似选项,但我希望有一个热键,或者如果我可以转换所有默认情况下,RStudio 控制台中的输出为纯文本(因为我无论如何都用不着它的格式)。

Addins 菜单中,有一个选项可以将 value/output 复制到剪贴板。

请看clipr


或者您可以捕获控制台输出并将输出写入剪贴板。

to_clip_board <- function(x){
    message(paste(
        as.character(substitute(x)), "written to clipboard."
    ))
    write.table(
        paste0(capture.output(x),collapse = "\n"),
        "clipboard",
        col.names = FALSE,
        row.names = FALSE
    )
}
> to_clip_board(iris)
> to_clip_board(data.frame)

我刚刚找到了一个至少适用于我现在的解决方案 OS,Linux Mint (19.3):只需 select 文本并用 鼠标中键单击按钮 到您要复制粘贴 select 文本的位置(例如在 WPS Office 或 LibreOffice 中)。它会立即复制和粘贴文本而不带格式。 (如果你想先复制,用鼠标中键点击select编辑的文本,然后用鼠标中键再次点击你想要粘贴的地方。)

其他人说 Ctrl + Shift + V 也应该不带格式地粘贴,但这对我不起作用。在许多应用程序中,这种组合应该也适用于 Windows。否则,对于 Windows,您可以下载 PureText,这使得无需格式化的复制粘贴变得非常容易。

(回想起来,我意识到这不一定是 R 或 RStudio 问题,而是更普遍的 OS 剪贴板问题。尽管如此我只需要 R,所以我将保留问题不变:将来可能会有更好更通用的 R 特定解决方案,例如使所有控制台输出纯文本。)