通常在终端(或我以前使用的任何其他命令提示符)中,我将按向上键以获取最后输入的命令。但是,在guile
解释器中执行此操作时,我只会得到:
scheme@(guile-user) [1]> ^[[A
获得guile中最后输入的命令最简单的方法是什么?
命令行REPL通常功能较差。对于Guile,例如,可以在emacs中的Geiser下运行,从而获得更好的体验。这样可以在emacs缓冲区中运行REPL,并具有更好的控制。作为一个长期解决方案,我建议学习如何做这样的事情。
有一些学习曲线可以提高emacs的生产力(尽管不像人们经常担心的那样多)。幸运的是,Guile为那些希望坚持使用常规Guile REPL的人提供了解决方案。
虽然默认情况下未启用,但Guile can make use of the GNU Readline library。这允许通过向上和向下箭头键导航REPL表达历史。要从REPL启用此功能,请输入:
scheme@(guile-user)> (use-modules (ice-9 readline))
scheme@(guile-user)> (activate-readline)
When Guile is started in interactive mode, it first loads the .guile
init file来自用户主目录。您可以通过将以上两行添加到.guile
文件中来利用这一点(如果尚不存在,请为此创建一个新的.guile
文件):
.guile
更新;;; Guile Scheme Init File
;; Activate Readline
;; allows navigation of expression history in REPL
(use-modules (ice-9 readline))
(activate-readline)
文件后,每当Guile以交互模式运行时,您将自动具有Readline功能。