【问题标题】:Scheme get last command in guile计划在诡计中获取最后一个命令
【发布时间】:2020-07-25 09:04:48
【问题描述】:

通常在终端(或我之前使用过的任何其他命令提示符)中,我会按向上键来获取最后输入的命令。但是,当在 guile 解释器中这样做时,我会得到:

scheme@(guile-user) [1]> ^[[A

在 guile 中获取最后输入的命令的最简单方法是什么?

【问题讨论】:

  • 许多命令行 REPL 的功能非常有限。如果你打算在任何 Lisp 中编写代码,emacs 真的很不错,值得一试。对于 Common Lisp,SLIME 非常棒;对于方案,我建议使用Geiser。 Geiser 甚至可以为 Racket 工作,尽管现在 Racket-Mode 似乎更好一些。所有这些都为您在 REPL 中提供了更多功能(例如,CTRL 加箭头键来浏览历史记录),它可以在 emacs 缓冲区中运行。有点学习曲线,但非常值得。

标签: scheme lisp guile


【解决方案1】:

命令行 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 Scheme Init File

;; Activate Readline
;; allows navigation of expression history in REPL
(use-modules (ice-9 readline))
(activate-readline)

更新.guile 文件后,每当Guile 以交互模式运行时,您将自动拥有Readline 功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-21
    • 2019-12-04
    • 2018-10-15
    • 2021-01-31
    • 1970-01-01
    • 2015-11-04
    • 2012-05-05
    • 1970-01-01
    相关资源
    最近更新 更多