在ghci中实现持久化控制台历史记录

11

我记得在版本6.12.2时,这个功能可以正常运行。但是现在我使用的是版本为6.12.3的新系统(通用Unix二进制文件),显然我缺少了某些设置。

在单个会话(即ghci的执行)中,我有一个控制台历史记录,但是这个历史记录不会被保存和重新加载到下一次会话中,就像以前那样。我无法确定ghci是否正在使用readline、editline或haskeline等工具,因此我不太确定从哪里开始修复它。

2个回答

10

这可能没有太大的帮助,但你是否检查过~/.ghc/ghci_history是否正在写入ghci_history文件中?


3
确实如此,由于某些原因,ghc/ghci未能创建.ghc目录。我创建了这个目录,现在我的历史记录就保存在那里了 :-) - sclv
那么 ghci 的预期行为是什么?如果没有 ~/.ghc,它应该尝试创建吗?我发现在创建了这个目录之后,我还可以利用持久历史记录功能(我之前错过了)。难道 ghci(ghc-7.0.1-[alt1](http://prometheus.altlinux.org/en/Sisyphus/srpms/ghc))不自动创建它,这不好吧,这样我只是偶然发现 GHCi 中可能有持久的历史记录? - imz -- Ivan Zakharyaschev
1
@imz -- 我意识到发生了什么后,我提交了一个工单。它应该在7.0.3中得到修复:http://hackage.haskell.org/trac/ghc/ticket/4522 - sclv
我相信它是 ~/.ghc/ghci_history - Titou

0

Sean Seefried's answer不适用于Windows系统,因为ghc的主目录位于%APPDATA%\ghci(在我的情况下是C:\Users\me\AppData\Roaming\ghci)。

文件可以在此处找到:ghci_history


我的Windows上的文件 ghci_history 完全为空?并且没有任何东西被保存在那里? - CMCDragonkai
@CMCDragonkai 这可能与权限有关吗?普通用户可以在那里写入吗?我没有遇到过这样的问题。 - alvaro g

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接