我喜欢 Clipr::write_clip 但我注意到每次我用它向剪贴板写入内容时,后面总是有一个换行符。这是一些示例代码:
install.packages("clipr")
library(clipr)
text = "Hello world"
clipr::write_clip(text)
result = "Hello world
"
如您所见,当我将结果粘贴到一组引号中时,出现了令人讨厌的换行符。理想情况下,当我将结果粘贴到一组引号中时,它看起来像这样:
result = "Hello world"
我已经仔细阅读了https://www.rdocumentation.org/packages/clipr/versions/0.8.0/topics/write_clip的文档,并尝试了不同的break和eos设置,但到目前为止还没有成功。 eos 的描述说“在每个字符串之后写入终止符,后跟 ASCII nul”。我认为 ASCII nul 导致了我的问题,有谁知道如何摆脱它吗?
谢谢!
难以复制,因为:
text = "Hello world"
clipr::write_clip(text, allow_non_interactive = TRUE)
clipr::read_clip(allow_non_interactive = TRUE)
#> [1] "Hello world"
创建于 2024-02-29,使用 reprex v2.1.0
请注意,
allow_non_interactive = TRUE
只是为了reprex能够在后台执行,它不会影响结果。
我找到了使用 utils::writeClipboard 的解决方法
install.packages("utils")
library(utils)
text <- "Hello world"
utils::writeClipboard(str = charToRaw(paste0(text, " ")), format = 1)
"Hello world"
如您所见,在该调用之后粘贴到一组引号中没有换行符。这可能也适用于 Clipr:write_clip 但它似乎不喜欢被传递 charToRaw 所以我只是切换到 utils::writeClipboard。 谢谢大家的帮助!