2014-12-10 4 views
0

Хорошо, поэтому у куриной схемы есть это отличное яйцо 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)) 

Неужели кто-нибудь еще столкнулся с этой проблемой?

+0

Похоже, вы используете устаревшую версию API-интерфейса Chicken readline. Попробуйте обновить readline и ваш '.csirc' в соответствии с вики. – nwk

+0

@ nwk, я забыл, что я разместил этот вопрос. С тех пор он получил ответ в списке рассылки для курильщиков. Кроме того, я поддерживаю яйцо Chicken Readline, поэтому мне хорошо известно об обновлении, lol. –

ответ

0

Оказывается, что в моем ~/.zshrc файл я имел псевдоним csi, призывающую csi с rlwrap:

alias csi='rlwrap csi' 

Calling rlwrap на csi приводившая csi использовать rlwrap «s историю вместо встроенного История, предоставленная яйцом readline.

 Смежные вопросы

  • Нет связанных вопросов^_^