Как правильно запустить GHCi в окне ANSI-Term в Emacs? - PullRequest
0 голосов
/ 02 ноября 2018

Почему-то я теряю стрелки вверх и 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 )?

...