Haskell:GHCI像Ctrl-Z一样对待Ctrl-Y



根据haskeline文档,键入 ctrl y 应该弹出最新的杀戮环(例如,该行)我刚刚通过 ctrl u 删除。我发现相反,它暂停了补充,好像我输入 ctrl z

作为笨拙的解决方法,我发现键入 ctrl v ctrl y y 杀死戒指作为普通 ctrl y 应该做。

这是一个知道的错误,还是还有其他事情在起作用?我可以修复吗?我正在运行GHC版本8.0.2。

不确定是否重要,但是我正在通过堆栈(例如stack ghci)运行GHCI,然后我酿造了安装的堆栈(MacOS)。

mac os终端/ttys具有" dsusp"或"延迟暂停"键的概念,而ctrl-y是分配的通常的键。在TTY级别上,当读取 ctrl y 时,它的作用类似于 ctrl z 。不同之处在于, ctrl z 在键入时立即引起暂停。 ctrl y 当基础过程试图读取字符时会导致悬浮液,而 ctrl y 标记弹出在输入流中。

ctrl v 通常分配给" lnext"键,该键通过制作下一个键"文字"来跳过终端处理,这就是为什么ctrl v ctrl y works。)

理想情况下,GHCI会检查" DSUSP"功能(例如,在Linux上不存在),并在检测到的情况下将其禁用,但看起来好像没有这样做。

与此同时,您可以通过运行:

禁用" DSUSP"键
stty dsusp undef

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

最新更新