通常在终端(或我以前使用过的任何其他命令提示符)中,我会按向上键来获取最后输入的命令。然而,当在guile解释器中这样做时,我只是得到:
scheme@(guile-user) [1]> ^[[A
Run Code Online (Sandbox Code Playgroud)
获取 guile 中最后输入的命令的最简单方法是什么?
命令行 REPL 通常功能匮乏。对于 Guile 来说,可以通过例如在 emacs 中的Geiser下运行来获得更好的体验。这允许在 emacs 缓冲区中运行 REPL,并具有更好的控制。作为长期解决方案,我建议学习如何做这样的事情。
要在 emacs 中提高工作效率,需要一定的学习曲线(不过,不像人们通常担心的那样)。幸运的是,Guile 为那些希望坚持使用常规 Guile REPL 的人提供了一个解决方案。
虽然默认情况下未启用它,但Guile 可以使用 GNU Readline 库。这允许通过向上和向下箭头键导航 REPL 表达式历史记录。假设您已经安装了 GNU Readline 库,您可以从 REPL 启用此功能:
scheme@(guile-user)> (use-modules (ice-9 readline))
scheme@(guile-user)> (activate-readline)
Run Code Online (Sandbox Code Playgroud)
当 Guile 以交互模式启动时,它首先.guile从用户主目录加载init 文件。您可以通过将以上两行添加到文件中来利用这一点(如果文件尚不存在,则为此目的.guile创建一个新文件):.guile
;;; Guile Scheme Init File
;; Activate Readline
;; allows navigation of expression history in REPL
(use-modules (ice-9 readline))
(activate-readline)
Run Code Online (Sandbox Code Playgroud)
更新.guile文件后,每当 Guile 以交互模式运行时,您将自动拥有 Readline 功能。
| 归档时间: |
|
| 查看次数: |
624 次 |
| 最近记录: |