Хорошо, поэтому у куриной схемы есть это отличное яйцо readline, которое может быть использовано для добавления истории, завершения табуляции и других разумных функций в среду командной строки csi
. Тем не менее, я не могу заставить его работать правильно, то есть работает только при первом запуске csi
после создания нового файла истории.история чтения не работает
Я проверил документацию на яйцо и другие аналогичные яйца, такие как linenoise и parley, но ни один из них не предлагает завершение табуляции или какие-либо рекомендации о том, как устранить этот недостаток 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
делает это так, что гну 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))
Неужели кто-нибудь еще столкнулся с этой проблемой?
Похоже, вы используете устаревшую версию API-интерфейса Chicken readline. Попробуйте обновить readline и ваш '.csirc' в соответствии с вики. – nwk
@ nwk, я забыл, что я разместил этот вопрос. С тех пор он получил ответ в списке рассылки для курильщиков. Кроме того, я поддерживаю яйцо Chicken Readline, поэтому мне хорошо известно об обновлении, lol. –