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

时间:2017-08-03 14:14:09

标签: swift read-eval-print-loop

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

这可用吗?

1 个答案:

答案 0 :(得分:2)

Swift REPL(实际上在REPL模式下启动lldb调试器) 使用 libedit 进行命令行编辑和历史记录。退出时,历史记录将保存到文件null (比较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_
let\040a\040=\0401\012
let\040b\040=\0402\012
print(a\040+\040b)\012