readline历史不起作用

时间:2014-12-10 23:58:36

标签: command-line readline chicken-scheme

好的,所以Chicken-scheme有一个很棒的readline蛋,可用于向csi命令行环境添加历史记录,标签完成和其他合理功能。但是,我似乎无法正常 EM>

我已经检查了鸡蛋和其他类似鸡蛋的文档,例如linenoiseparley,但它们都没有提供标签完成或任何有关如何解决这个缺点的建议readline的。

以下是与我合作的代码:

csi

注意

在写这篇文章的时候,我想我可能已经找到了问题或至少部分问题。我认为,问题在于我安装历史文件;因为它只适用于首次安装

然而,我尝试烹饪我自己的readline (current-input-port (make-gnu-readline-port)) (gnu-history-install-file-manager (string-append (or (get-environment-variable "HOME") ".") "/.csi_history")) 设置使得gnu readline 永远不会写入历史文件,但是,它将从中读取

file-manager

还有其他人遇到过这个问题吗?

2 个答案:

答案 0 :(得分:0)

事实证明,在我的~/.zshrc文件中,我有csi的别名,其中csi名为rlwrap

alias csi='rlwrap csi'

rlwrap上调用csi导致csi使用rlwrap的历史记录而不是readline提供的内置历史记录蛋

答案 1 :(得分:0)

在鸡计划中不建议使用readline来安装linenoise

并将其放入您的.csirc:

(import linenoise)
(current-input-port (make-linenoise-port))

(set-history-length! 300)

(load-history-from-file ".linenoise-history")

(let loop ((expr (linenoise "> ")))
              (cond ((equal? expr "bye")
                             (save-history-to-file ".linenoise-history")
                             "Bye!")
                    (else
                        (display (eval (read (open-input-string expr))))
                        (newline)
                        (history-add expr)
                        (loop (linenoise "> ")))))