通过 RStudio 编织时避免打印控制台控制字符

问题描述

当您在 Rstudio 中运行以下代码时,您将看到在最终输出中,ANSI 控制字符包含在输出中。如果您从 R 控制台运行相同的代码,则情况并非如此。

我找到了 2 个解决方法

  • 部分解决方法是将 pillar.subtle 设置为 FALSE,这样可以去掉负责灰色文本的控制字符(但不是斜体文本的控制字符)
  • 另一种选择是使用 Crayon::strip_style

然而,由于控制字符只能在 RStudio 中可见,我猜这首先与 RStudio 显示 ANSI 控制字符的能力有关。

因此,我的问题是:是否有一个 R 选项可以传递给 R.options,它会停用这些扩展功能,这样我就不需要退回到 strip_style。在某些 old issues 中,我找到了选项 Crayon.enabled,但这显然不再受支持

library(shiny)
library(knitr)
library(tibble)
library(glue)

ui <- fluidPage(checkBoxInput("use_subtle","pilar.subtle",value = TRUE),checkBoxInput("strip","Use strip_style",value = FALSE),uIoUtput("content"))

server <- function(input,output) {
   n <- new.env()
   output$content <- renderUI({
      subtle <- input$use_subtle
      chunk <- glue("```{{r,R.options = list(pillar.subtle = {subtle})}}
                        as_tibble(mtcars)
                     ```")
      res <- HTML(knit2html(text = chunk,fragment.only = TRUE,quiet = TRUE,envir = n))
      if (input$strip) {
         res <- Crayon::strip_style(res)
      }
      res
   })
}

shinyApp(ui,server)

来自 Rstudio输出

ANSI Control Chars

R 控制台输出

No ANSI Control Chars

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)