Стандартный 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 имеет по умолчанию историю команд.