首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用hamerspoon将富文本粘贴板内容转换为纯文本?

如何使用hamerspoon将富文本粘贴板内容转换为纯文本?
EN

Stack Overflow用户
提问于 2019-02-10 22:08:26
回答 1查看 251关注 0票数 0

我正在寻找一个解决方案,以自动转换富文本复制到剪贴板(粘贴板),以纯文本的Hammerspoon (lua代码)。

我知道如何在lua中访问粘贴板,但不知道如何将此操作绑定到复制或粘贴事件以使其自动化(也不知道如何将内容转换为纯文本)。

代码语言:javascript
复制
local pasteboard = require("hs.pasteboard")
EN

回答 1

Stack Overflow用户

发布于 2019-04-09 13:29:42

最简单的方法是使用答案描述的here来获取粘贴板中的RTF数据,并通过管道将数据传递给已经可用的textutil命令,以将其转换为标准输出的纯文本:

代码语言:javascript
复制
osascript -e 'the clipboard as «class RTF »' | \
    perl -ne 'print chr foreach unpack("C*",pack("H*",substr($_,11,-3)))' | \
    textutil -stdin -stdout -convert txt

然后我们可以在Hammerspoon环境中使用hs.execute来运行外壳命令并返回转换后的值,所以在您的Lua代码中就像这样简单:

代码语言:javascript
复制
local text = hs.execute([[
    osascript -e 'the clipboard as «class RTF »' | \
        perl -ne 'print chr foreach unpack("C*",pack("H*",substr($_,11,-3)))' | \
        textutil -stdin -stdout -convert txt
]])

仅供参考Hammerspoon API确实允许您使用"public.rtf" UTI使用hs.pasteboard.readDataForUTI从粘贴板中检索RTF数据,因此从技术上讲,您可以在Lua中完成所有这些操作,但您必须手动转换RTF数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54617188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档