Как правильно запустить GHCi в окне ANSI-Term в Emacs?

По какой-то причине я теряю клавиши со стрелками вверх и DEL после запуска GHCi из окна отклика в Emacs. (Эти ключи работают, как и ожидалось, в окне ответа до запуска GHCi.) И RET не производит перевод строки, только возврат каретки. Я не наблюдаю ни одной из этих странностей при запуске GHCi из моего обычного приложения Terminal под MacOS X.

Используя функцию Emac для просмотра потерь, я нахожу:

 <menu-bar> <Terminal> <Character mode> [term-char-mode]
 <up> [term-send-up]
 <return> [term-send-raw]
 <backspace> [term-send-backspace]
 <menu-bar> <Terminal> <Line mode> [term-line-mode]
 <up> [previous-line]
 <return> [term-send-input]
 <backspace> [delete-backward-char]
 C-h l [view-lossage]

(Примечание: вышесказанное было сделано после запуска GHCi из окна отклика Emacs.)

И, похоже, я хочу переключиться в режим Line во время работы GHCi. (Обычно я запускаю окно ANSI-term в символьном режиме, потому что оно дает мне опыт, более похожий на работу в приложении Terminal.)

Это выглядит как M-p восстановит прошлые команды. Итак, если я смогу выяснить, как перенести стрелку вверх на M-p в то время как в GHCi, я должен быть довольно близок к своему обычному опыту GHCi-in-Terminal.

Однако осталась одна проблема: я все еще не получаю перевод строки при нажатии RET. И это действительно мешает, как эстетически, так и функционально.

Это странно, потому что клавиша RET, набранная либо в приглашении ansi-term, либо в приглашении GHCi (запущенном из ansi-term) (с окном ansi-term, установленным в режим Line), отправляет одну и ту же команду: term-send-input, И ansi-term делает правильные вещи в ответ на эту команду. Итак, почему GHCi не делает правильные вещи?

Возможно, мне нужно переназначить RET, чтобы: CR/LF; term-send-input в то время как в GHCi? Возможно ли это вообще (т. Е. Сделать переопределение ключа для конкретного приложения в окне анонимных терминов)?

0 ответов

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