Я обнаружил эту проблему, когда пытался сопоставить Ch ... Cl для перемещения между панелями в Tmux. Когда я нажимал клавиши, в Tmux ничего не передавалось.
Это на виртуальной машине Ubuntu 14.04 с Bash 4.3.11. Я подключаюсь по ssh с моего Mac OS Mojave.
Я могу использовать эти клавиши на моем Mac. Например, когда я ввожу их в cat, он получает клавиши и выдает какой-то текст:
~/mac: cat
^H^K^L
Когда я запускаю cat через ssh на своей виртуальной машине с явно выделенным терминалом, это тоже работает:
~/mac: ssh -t vm "cat"
^H^K^L
Но когда я вхожу в свою виртуальную машину и запускаю cat, символы поглощаются вместо того, чтобы передаваться в cat:
~/vm: cat
# hitting C-h, C-k, C-l...nothing happens
Как показывает эксперимент с cat
, это не терминал на моей виртуальной машине поглощает ввод. Я понимаю, что ввод идет из терминала в bash, а затем в процесс, запущенный внутри bash, так что это, похоже, указывает на то, что bash поглощает ввод. Как мне отладить это дальше?
решение1
Отказ от ответственности: Я бы оставил это как комментарий, но у меня недостаточно кармы, поэтому, пожалуйста, не ставьте мне всем минусы.
Bash использует библиотеку GNU Readline для обработки редактирования командной строки и сочетаний клавиш.
Можете ли вы опубликовать вывод этой команды, чтобы мы могли увидеть, есть ли что-то, связанное с «Control-hjkl», что может помешать выполнению последовательности клавиш и выполнению:
bind -p | grep -v "(not bound)"