首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在通用Lisp中打印文本,以便将其格式化为转义序列(类似于在球拍中显示)?

如何在通用Lisp中打印文本,以便将其格式化为转义序列(类似于在球拍中显示)?
EN

Stack Overflow用户
提问于 2022-07-04 09:35:38
回答 1查看 126关注 0票数 2

我是否在通用Lisp中打印格式化输出?在球拍中,我使用display来实现它,如下所示:

代码语言:javascript
复制
(display "\33[3min italics\33[m\n")

我试过使用(format t "~ain italics~a" "\33[3m" "\33[m"),但它不起作用。这也不是:(format t "~cin italics~c" #\33[3m #\33[m)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-04 12:56:00

这里的主要问题是如何获得适当的字符序列。33是普通Lisp中ascii char 27或#\Esc的八进制。

代码语言:javascript
复制
(format t "~C[3min italics~C[m~%" #\Esc #\Esc)

做你想做的事。

但你可以做得更好。有一个名为cl-国际刑警组织的库,它通过修改读取器来演示Common的灵活性,这样您就可以使用已经熟悉的语法。例如:

代码语言:javascript
复制
* (ql:quickload 'cl-interpol)
To load "cl-interpol":
  Load 1 ASDF system:
    cl-interpol
; Loading "cl-interpol"
...
(CL-INTERPOL)

* (named-readtables:in-readtable :interpol-syntax)
#<NAMED-READTABLE :INTERPOL-SYNTAX {1002E6D6B3}>

* (format t #?"\33[3min italics\33[m\n")
in italics
NIL
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72854612

复制
相关文章

相似问题

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