дальнейшее чтение

дальнейшее чтение

Когда я нажимаю стрелку в терминале, курсор перемещается правильно, но когда я создаю простое приложение на C, C++ или Python, оно пишет ^[[A, ^[[B... Я написал простую программу на Python, поэтому вы можете увидеть код и результаты.

введите описание изображения здесь

решение1

Это уровень декодирования терминального ввода, который вы получаете от дисциплины линии в каноническом режиме ввода. Это не очень много.

Каждое приложение, которое хочет представить редактируемый ввод командной строки, который учитывает клавиатуру курсора, клавиатуру редактирования и функциональные клавиши, должно переключить терминал в режим необработанного ввода и декодировать поток ввода ECMA-48, учитывая типы терминалов (и различные конечные автоматы для RXVT, Linux KVT, SCO Console и Interix). Ваша программа должна это сделать.

Для этого существуют различные библиотеки: от GNU ReadLine до libtermkey/libtickitиeditline(он же libedit) в ZLE в оболочке Z и библиотеку редактирования оболочки Korn.

дальнейшее чтение

Связанный контент