Ответ 1
Потому что то, что клавиатура фактически отправляет на ПК (точнее, что терминал печатает для того, что он фактически получает с клавиатуры). bash
, например, получает эти значения, расшифровывает их и понимает, что вы хотите перемещаться, поэтому он будет либо перемещать курсор (в случае левого/правого), либо использовать его историю для извлечения предыдущих команд (вверх/вниз). Таким образом, вы не можете ожидать, что ваша программа магически поддерживает клавиши со стрелками.
Однако, чтение со стандартного ввода с терминала уже поддерживает клавиши со стрелками влево/вправо (я полагаю, но я не сейчас в Linux, чтобы проверить и убедиться). Поэтому я предполагаю, что есть другая проблема. Одна из возможных причин может заключаться в том, что один из ваших ключей-модификаторов застрял? Возможно, ALT, CTRL или SUPER?