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