如何从正在运行的会话中还原Julia历史记录文件?

问题描述

哈普!我不小心删除~/.julia/logs文件夹。

但是,好消息是我进行了几次茱莉亚会议,似乎对茱莉亚REPL的历史有一定的记忆。

有人知道是否有某种方法可以从正在运行的julia进程状态中反向转储历史文件?提前非常感谢!

解决方法

这应该将其存储回一个文件,然后可以将其放入.julia/logs/repl_history.jl

function restore_repl_history()
    hist = Base.active_repl.interface.modes[1].hist
    open("restored_history.jl","w") do io
        for (mode,cont) in zip(hist.modes,hist.history)
            println(io,"# time: $(Libc.strftime("%Y-%m-%d %H:%M:%S %Z",time()))")
            println(io,"# mode: $mode")
            s = join(split(cont,'\n'),"\n\t")
            println(io,"\t",s)
        end
    end
end