Стандартный ML повторить последнюю команду, стрелка влево?

Я изучаю стандарт ML, используя его интерпретатор. Иногда я делаю опечатку и просто хочу повторить предыдущую команду, как в оболочке Linux. Однако стрелка вверх приведет к печати специальных символов на экране. Иногда я хочу вернуться влево, чтобы что-то исправить, стрелка влево также приводит к печати специальных символов.

Кто-нибудь знает, как правильно их делать?

3 ответа

Я использую Moscow ML, но думаю, что ответ будет применяться к любой версии, которую вы используете:

Вы можете достичь того, чего хотите, используя rlwrap,

У меня есть следующий псевдоним, установленный в моем .zshrc, который обрабатывает это автоматически:

alias mosml="rlwrap mosml"

(Замена mosml имя вашего переводчика SML.)

Рассмотрите возможность использования программы ledit. Это позволяет вам использовать клавиши со стрелками для посещения предыдущих команд.

Пример:

ledit mosml

Если вы собираетесь заниматься каким-либо серьезным взломом SML, я настоятельно рекомендую вам использовать среду разработки, которая позволяет вам взаимодействовать со средой верхнего уровня SML.

Я использую Emacs с режимом SML. Прелесть здесь в том, что в верхнем окне вы можете кодировать функции и сохранять их в файл. Затем вы можете отправить их в нижнее окно, которое содержит процесс Inferior-SML для компиляции. Также процесс Inferior-SML имеет по умолчанию историю команд.

Другие вопросы по тегам