Я пишу программу терминального режима в Haskell. Как я могу прочитать информацию о сыром keypress?
В частности, похоже, что есть что-то, предоставляющее средства редактирования строк поверх Haskell. Если я выполняю getLine
, я, похоже, могу использовать стрелку вверх, чтобы получить предыдущие строки, отредактировать текст, и только когда я нажимаю Enter, текст становится видимым для самого приложения Haskell.
То, что мне нужно, - это возможность читать отдельные нажатия клавиш, поэтому я могу самостоятельно выполнять редактирование строк.
Возможно, мой вопрос был неясным. В принципе, я хочу построить что-то вроде Vi или Emacs (или Yi). Я уже знаю, что есть привязки терминалов, которые позволят мне притворяться в режиме консольного режима, поэтому выходная сторона не должна быть проблемой. Я просто ищу способ получить исходный ввод ввода, поэтому я могу делать такие вещи, как (например) добавить K в текущую строку текста, когда пользователь нажимает букву K или сохраняет файл на диск, когда пользователь нажимает Ctrl + S.