gpt4 book ai didi

haskell - 有没有一种简单的方法可以从 GHCi 中访问 REPL 历史记录(例如作为列表)?

转载 作者:行者123 更新时间:2023-12-04 08:48:34 25 4
gpt4 key购买 nike

其他 REPL,e.g. Octave ,有专门的命令用于浏览命令历史。我觉得这很方便(尽管每当我使用这样的功能时,我都会问自己,为什么我没有首先在文件中正确定义该命令?)。

GHCi 似乎没有这样的特性,我认为它可能不应该——这样的交互性会使 Emacs 的控制之类的尝试比现在更加麻烦。

但是,简单地获取整个历史记录,然后使用普通的 Haskell 浏览它,这听起来是一项相当琐碎的任务。有没有在任何地方实现过类似的事情?

最佳答案

可能有一个更好的方法可以做到这一点,它是一种更跨平台的方法,可以开发成一个漂亮的小包来加载到 .ghci 文件或其他东西中,但是使用 haskeline 的快速而肮脏的方法很简单。您可以阅读 ghci_history您的系统的文件,我的位于 C:/Users/bheklilr/AppData/Roaming/ghc/ghci_history , 但我相信在 *nix 系统上它应该位于 ~/.ghci_history .选择适合您系统的。

> import System.Console.Haskeline.History
> hist <- fmap $ readHistory "path/to/ghci_history"
> putStrLn $ unlines hist

不幸的是,至少对我来说,历史文件似乎在 GHCi 退出之前不会更新,因此对于特定 session hist应该相同(前提是您只有一个 GHCi 实例)。在我看来,这是一个非常有限的 API,我认为转储每个命令或至少每个命令的历史记录不会太难,但这还没有完成。

或者,您可以使用 CTRL-R以及一些其他命令来搜索您的历史记录,它更有用。它特别有用,因为它会搜索匹配的潜台词。

关于haskell - 有没有一种简单的方法可以从 GHCi 中访问 REPL 历史记录(例如作为列表)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28043568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com