Bash поглощает Ch, Cj, Ck и Cl

Bash поглощает Ch, Cj, Ck и Cl

Я обнаружил эту проблему, когда пытался сопоставить 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)"

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