3
使用ghci
,我有时会使用多行模式输入定义(如interactive-evaluation documentation中所述)。如何在ghci的多行模式下编辑之前的行?
例如,
> :{
Prelude| sumToN :: (Eq a, Num a) => a -> a
Prelude| sumToN n
Prelude| | signum n /= 1 = 0
Prelude| | otherwise = 1 + sumToN (n-1)
Prelude| :}
>
当使用这种多行输入模式,我偶尔会意识到,我在输入了一个错误的前一行。例如,在此代码中,我意外键入了A
而不是a
。
> :{
Prelude| sumToN :: (Eq a, Num a) => a -> A
Prelude|
要纠正错误,我需要编辑上一行。但是,我找不到任何回头编辑上一行的方法。相反,I ^C
退出多线模式并重新开始,必要时重复,直到我逐行输入整个定义而没有错误。
有什么方法可以编辑ghci
的多行模式中的上一行,而无需再次输入所有行?
你不能 - 只需将你的代码输入到一个文件并加载该文件。 – user2407038
如果多行模式进入真正的编辑模式,我会很高兴,其中1)您仍然可以看到上面的行,2)您可以像普通编辑器一样在屏幕的底部自由移动。唉,事实并非如此。 – chi