【问题标题】:Copy text from RStudio console as "plain text"将 RStudio 控制台中的文本复制为“纯文本”
【发布时间】:2020-01-20 17:32:15
【问题描述】:

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

例如,我有这个输出:

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

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

【问题讨论】:

    标签: r formatting rstudio copy-paste plaintext


    【解决方案1】:

    Addins 菜单中,有一个将值/输出复制到剪贴板的选项。

    请看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)
    

    【讨论】:

    • 很高兴知道,但不是完全正确的答案:我经常从函数内部打印,所以它确实是我需要复制的控制台输出
    • 我根据您的评论修改了答案。
    【解决方案2】:

    我刚刚找到了一个至少可以在我目前的操作系统 Linux Mint (19.3) 上运行的解决方案:只需选择文本并用 鼠标中键 单击该位置(例如在 WPS Office 或 LibreOffice 中)您要复制粘贴所选文本的位置。它会立即复制和粘贴文本而不进行格式化。 (如果要先复制,在选中的文本上用鼠标中键单击,然后用鼠标中键再次单击到要粘贴的位置。)

    其他人说 Ctrl + Shift + V 也应该在不格式化的情况下粘贴,但这对我不起作用。这种组合应该也适用于 Windows 上的许多应用程序。否则,对于 Windows,您可以下载 PureText,这使得无需格式化即可轻松复制粘贴。

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

    【讨论】:

      最近更新 更多