Common Lisp:flush标准输出

mig*_*k35 0 lisp stdout common-lisp

试图学习lisp(我猜emacs一起).我想知道如何清除输出并更换它.可以在LISP repl或emacs缓冲区中.
类似于python中的以下内容.

def go(r):
    for i in range(r):
        sys.stdout.write("\rDoing %i" % i)
        sys.stdout.flush()
Run Code Online (Sandbox Code Playgroud)

sds*_*sds 7

对于常见的lisp,您正在寻找

Functions FINISH-OUTPUT, FORCE-OUTPUT, CLEAR-OUTPUT:

finish-output,force-outputclear-output控制缓冲流输出的内部处理.

  • finish-output 尝试确保发送到输出流的任何缓冲输出已到达其目标,然后返回.

  • force-output 启动清空任何内部缓冲区但不等待完成或确认返回.

  • clear-output 尝试中止正在进行的任何未完成的输出操作,以便尽可能少的输出继续到目的地.

Variables *DEBUG-IO*, *ERROR-OUTPUT*, *QUERY-IO*, *STANDARD-INPUT*, *STANDARD-OUTPUT*, *TRACE-OUTPUT*

  • *debug-io*称为调试I/O 的值是用于交互式调试目的的流.

  • *error-output*称为错误输出的值是应向其发送警告和非交互式错误消息的流.

  • *query-io*称为查询I/O 的值是在询问用户问题时使用的双向流.问题应输出到此流,并从中读取答案.

  • *standard-input*称为标准输入的值是一个流,当没有显式提供特定输入流时,许多运算符将其用作默认输入源.

  • *standard-output*称为标准输出的值是一个流,当没有显式提供特定输出流时,许多运算符将该流用作输出的默认目标.

  • *trace-output*称为跟踪输出的值是跟踪函数(请参阅跟踪)和时间宏打印其输出的流.

Emacs Lisp完全不同,你可能想从这里开始:https://www.gnu.org/software/emacs/manual/html_node/elisp/Output-Functions.html