gpt4 book ai didi

cocoa - NSTask 输出格式

转载 作者:行者123 更新时间:2023-12-03 16:50:53 26 4
gpt4 key购买 nike

我正在使用 NSTask 来获取/usr/bin/man 的输出。我得到了输出,但没有格式化(粗体、下划线)。应该看起来像这样:

粗体带有下划线的文本

(请注意,斜体文本实际上带有下划线,只是此处没有格式化)

而是像这样返回:

带有 _u_n_d_e_r_l_i_n_e 的 BBoolldd 文本

我有一个最小的测试项目 http://cl.ly/052u2z2i2R280T3r1K3c您可以下载并运行;请注意,窗口不执行任何操作;输出被记录到控制台。

我想我需要以某种方式手动解释 NSData 对象,但我不知道从哪里开始。理想情况下,我想将其转换为 NSAttributedString 但首要任务实际上是消除重复项和下划线。有什么想法吗?

最佳答案

你的实际目的是什么?如果您想显示手册页,一种选择是将其转换为 HTML 并使用 Web View 呈现。

解析 man 的输出可能很棘手,因为它是由 groff 默认使用终端处理器处理的。这意味着输出经过定制以显示在终端设备上。

另一种解决方案是确定手册页源文件的实际位置,例如

$ man -w bash
/usr/share/man/man1/bash.1.gz

并使用-a(ASCII近似)和-c(禁用颜色输出)手动调用groff,例如

$ gunzip -c /usr/share/man/man1/bash.1.gz | groff -c -a -Tascii -man

这将生成一个没有大部分格式的 ASCII 文件。要生成 HTML 输出,

$ gunzip -c /usr/share/man/man1/bash.1.gz | groff -Thtml -man

您还可以在 man 的自定义配置文件中指定这些选项,例如parseman.conf,并告诉 man 通过 -C 选项使用该配置文件,而不是调用 man -wgunzipgroff。默认配置文件是/private/etc/man.conf

此外,您还可以通过将适当的选项传递给 grotty 来定制终端设备处理器的输出。

关于cocoa - NSTask 输出格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4807663/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com