как поддержать редактирование строки / историю в консольной программе C ++? - PullRequest
0 голосов
/ 06 марта 2019

Я пишу интерактивную консольную программу, управляемую командой ... подумайте о чем-то вроде Python, Matlab и т. Д., Если это поможет. Пользователь вводит команду, получает результат и повторяет до тех пор, пока не выполнит.

Это работает нормально, но единственное, что могут редактировать пользователи, - это ввод текста и Backspace. Я бы хотел, чтобы они использовали стандартное редактирование строк: клавиши со стрелками, ctrl-A / E, опция-стрелка для перехода по слову и т. Д. И (действительно, сейчас очень много просят), я также хотел бы, чтобы они могли используйте стрелки вверх / вниз для циклического переключения между предыдущими вводами, для их редактирования / повторного ввода.

Я знаю о курсах, но это кажется излишним; он предназначен для создания GUI-подобных интерфейсов, а мне нужен простой командный интерфейс.

Я пишу код на Mac, но скоро хочу, чтобы это работало и в Linux, и в Windows. Я готов засучить рукава и сделать это сам, если это необходимо, но наверняка есть что-то, что либо делает это, либо, по крайней мере, абстрагирует различия между консолями Unix и Windows, не перетаскивая все ncurses на картинку?

...