如何去掉clipr::wirte_clip末尾的ASCII nul?

问题描述 投票:0回答:2

我喜欢 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 导致了我的问题,有谁知道如何摆脱它吗?

谢谢!

r newline clipboard
2个回答
0
投票

难以复制,因为:

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能够在后台执行,它不会影响结果。


0
投票

我找到了使用 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。 谢谢大家的帮助!

© www.soinside.com 2019 - 2024. All rights reserved.