gpt4 book ai didi

Haskell:GHCi 将 Ctrl-Y 视为 Ctrl-Z

转载 作者:行者123 更新时间:2023-12-01 14:02:46 28 4
gpt4 key购买 nike

根据haskline documentation , 键入 CTRL+Y 应该会从 kill-ring 中弹出最近的条目(例如,我刚刚通过 CTRL+U 删除的行)。相反,我发现它暂停了 REPL,就好像我输入了 CTRL+Z 一样。

作为一种笨拙的解决方法,我发现键入 CTRL+V CTRL+Y 会像普通的 CTRL+Y 一样从杀戮环中弹出。

这是一个已知的错误,还是其他原因?我可以修复它吗?我正在运行 GHC 版本 8.0.2。

不确定这是否重要,但我正在通过堆栈运行 GHCi(例如 stack ghci ),并且我酿造安装的堆栈(macOS)。

最佳答案

Mac OS 终端/tty 具有“dsusp”或“延迟挂起”键的概念,Ctrl-Y 是通常分配的键。在 tty 级别,当读取 CTRL+Y 时,它的行为有点像 CTRL+Z。不同之处在于 CTRL+Z 在键入时会导致立即挂起;当底层进程尝试读取字符并且 CTRL+Y 标记在输入流中弹出时,CTRL+Y 会导致挂起。

(CTRL+V 通常分配给“lnext”键,它通过使下一个键为“文字”来跳过终端处理,这就是 CTRL+V Ctrl+Y 起作用的原因。)

理想情况下,GHCi 会检查“dsusp”功能(例如,它在 Linux 上不存在)并在检测到时将其禁用,但看起来它并没有这样做。

同时,您可以通过运行以下命令禁用“dsusp” key :

stty dsusp undef

在启动 GHCi 之前。将其粘贴在您的“.bashrc”和/或“.profile”中是一个好主意,因为该功能在很大程度上是无用的。

关于Haskell:GHCi 将 Ctrl-Y 视为 Ctrl-Z,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46290504/

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