Итак, у Chicken-scheme есть отличное readline яйцо, которое можно использовать для добавления история, завершение табуляции и другие разумные функции в среду командной строки csi
. Однако я не могу заставить его работать правильно, то есть он работает только при первом запуске csi
после создания нового файла истории.
Я проверил документацию по яйцу и другим подобным яйцам, таким как linenoise и переговоры, но ни один из них не предлагает завершения табуляции или каких-либо советов о том, как обращаться этот недостаток 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))
Кто-нибудь еще сталкивался с этой проблемой?
.csirc
согласно вики. - person nwk   schedule 05.01.2015