Запретить чтение строки
Я использую readline в приложении, которое следует за вводом в реальном времени. Я не хочу позволять пользователю нажимать Enter, Control + J или любой другой эквивалент и, таким образом, непреднамеренно очищать поле.
Я на самом деле пересылаю ключи сам, поэтому могу отлавливать и предотвращать определенные вводы клавиш, но я не думаю, что это путь, потому что обратный поиск (Control - R) также должен обрабатываться.
Я просмотрел документы по GNU, но не нашел ничего полезного.
Мой код похож на этот https://github.com/ulfalizer/readline-and-ncurses
1 ответ
Вы можете запретить эти ключи, конфигурируя привязки клавиш в файле инициализации libreadline:
- в
~/.inputrc
настроить для текущего пользователя - в
/etc/inputrc
настроить для всех пользователей.
Чтобы запретить Enter и Control + J, вы можете добавить в файл инициализации:
ВЕРНУТЬ:
CJ:
Если вы предпочитаете, вы можете сделать это программно, используя rl_unbind_key, добавив к своему коду:
rl_unbind_key('\r'); // unbind Enter
rl_unbind_key('\n'); // unbind Control+J