如何查找 Swift REPL 的命令历史记录

How to find command history of Swift REPL

我一直在 Swift REPL(在 macOS 上)中输入命令,而不是回滚查看我的命令历史记录,我想知道是否有一个文件或数据库可以保存历史记录,例如在我可以查看的其他 REPL(例如 python)中。

这个有货吗?

Swift REPL(实际上以 REPL 模式启动 lldb 调试器) 使用 libedit 进行命令行编辑和历史记录。退出时,历史记录保存到文件 ~/.lldb/lldb-repl-history (比较 SR-4338 Swift REPL crashes on launch if ~/.lldb/lldb-repl-history contains emoji)。

了解这段历史应该不会太难 来自 libedit 源代码的文件格式。这是一个简单的例子。 REPL 会话后

$ swift
Welcome to Apple Swift version 3.1 (swiftlang-802.0.53 clang-802.0.42). Type :help for assistance.
  1> let a = 1
a: Int = 1
  2> let b = 2
b: Int = 2
  3> print(a + b)
3
  4> ^D

历史文件包含

_HiStOrY_V2_
let0a0=012
let0b0=022
print(a0+0b)2