我在尝试映射 Ch ... Cl 以在 Tmux 中在窗格之间移动时发现了这个问题。当我按下按键时,没有任何内容传输到 Tmux。
这是在装有 Bash 4.3.11 的 Ubuntu 14.04 VM 上进行的。我正在从 Mac OS Mojave 进行 ssh 连接。
我可以在 Mac 上使用这些键。例如,当我将它们输入 cat 时,它会接收这些键并输出一些文本:
~/mac: cat
^H^K^L
当我在虚拟机上通过 ssh 运行 cat 时,明确分配了一个终端,它也能正常工作:
~/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)"