2014-12-10 137 views
0

好的,雞計劃有這個偉大的readline egg,可用於將歷史記錄,製表符完成和其他健全功能添加到csi命令行環境。然而,我似乎無法正確工作,也就是它只有在我創建一個新的歷史文件後第一次啓動csi了。readline歷史記錄無法運行

我檢查過雞蛋和其他類似雞蛋的文檔,如linenoiseparley,但他們都沒有提供tab-completion或關於如何解決readline缺陷的任何建議。

這裏是我的工作代碼:

(current-input-port (make-gnu-readline-port)) 
(gnu-history-install-file-manager 
    (string-append (or (get-environment-variable "HOME") ".") "/.csi_history")) 

注意

在寫這一點,我想我可能已經找到了問題或問題的至少一部分。我認爲,問題在於我在安裝歷史文件;因爲它只適用於第一次安裝

但是,我嘗試做飯我自己的readline file-manager設置使得它,以便GNU的readline 從未但是寫入歷史文件,它會從中讀取。

(current-input-port (make-gnu-readline-port)) 
(let ((histfile (string-append (or (get-environment-variable "HOME") ".") 
    "/.csi_history"))) 
    (and (file-exists? histfile) (gnu-readline-read-history histfile)) 
    (gnu-readline-append-history histfile)) 

還有其他人遇到過這個問題嗎?

+0

看起來您正在使用Chicken readline API的舊版本。根據維基嘗試更新readline和你的'.csirc'。 – nwk 2015-01-04 22:09:57

+0

@nwk,我忘記了我發佈了這個問題。它已經在雞羣用戶郵件列表中得到解答。另外,我是Chicken Readline雞蛋的維護者,所以我很清楚這個更新,哈哈。 – 2015-01-06 15:33:53

回答

0

原來,在我~/.zshrc文件我有csi的別名,與rlwrap稱爲csi

alias csi='rlwrap csi' 

調用上csirlwrap是導致csi使用rlwrap的歷史,而不是內置由readline egg提供的歷史。