为什么没有在emacs shell中按ctrl + d退出ghci ...但是为python REPL退出了吗?

时间:2017-10-17 04:33:50

标签: python shell emacs ghci control-characters

使用emacs shell缓冲区时,control-d按键不会从ghci REPL退出,但退出python REPL。而不是退出,gchi报告字符' \ EOT' 中的词汇错误。

如何让control-d正确退出emacs shell中的ghci REPL?另外,为什么ghci的工作方式与python不同?

(是的,control-d 在常规控制台窗口中退出ghci,而不是针对emacs shell。)

在下面的示例中,我尝试了输入control-d的两种变体。首先,我尝试了仅从control-d运行comint-delchar-or-maybe-eof的{​​{1}}。然后我尝试shell-mode-map序列显式插入control-q control-d字符,然后显示为ASCII字符4,emacs显示为" ^ D"。 (但是,如果将实际字符4粘贴到StackOverflow文本格式中,则会显示通用box character)。这两种变体都在control-d中失败。

首先,ghci

的行为令人不满意
ghci

接下来,$ ghci GHCi, version 7.6.3: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done. Prelude> <interactive>:1:1: lexical error at character '\EOT' Prelude> ^D <interactive>:2:1: lexical error at character '\EOT' Prelude> :quit Leaving GHCi. REPL的期望行为:

python

更新

我已经安装了最新的Haskell并且仍然有同样的问题......现在使用Haskell 8.2.1:

$ python
Python 2.7.6 (default, Oct 26 2016, 20:30:19) 
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
$ python
Python 2.7.6 (default, Oct 26 2016, 20:30:19) 
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> ^D

$ $ 

0 个答案:

没有答案