Почему-то я теряю стрелки вверх и DEL после запуска GHCi из окна ansi-term в Emacs.
(Эти ключи работают, как и ожидалось, из окна ansi-term до запуска GHCi.)
И RET не производит перевод строки, только возврат каретки.
Я не наблюдаю ни одной из этих странностей при запуске GHCi из моего обычного Terminal приложения под MacOS X.
Использование Emac view-lossage функция, которую я нахожу:
<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 из окна ansi-term Emacs.)
И, похоже, я хочу переключиться в режим Line во время работы GHCi.
(Обычно я запускаю окно ansi-term в режиме Character , потому что оно дает мне больше опыта работы с приложением Terminal .)
Похоже, M-p
восстановит прошлые команды.
Итак, если я могу понять, как перевести стрелку вверх в M-p
, находясь в GHCi, то я должен быть довольно близок к своему обычному опыту GHCi-in-Terminal .
Однако осталась одна проблема: я все еще не получаю перевод строки при нажатии RET.
И это действительно мешает, как эстетически, так и функционально.
Это странно, потому что клавиша RET набирается либо в приглашении ansi-term , либо в приглашении GHCi (запущенном из ansi-term ) (с помощью ansi) -term окно установлено на Line mode) оба посылают одну и ту же команду: term-send-input
.
И ansi-term делает правильную вещь в ответ на эту команду.
Итак, почему GHCi не делает правильные вещи?
Возможно, мне нужно переназначить RET на: CR/LF; term-send-input
в GHCi?
Возможно ли это вообще (т. Е. Сделать переопределение ключа для конкретного приложения в окне ansi-term )?