我在嘗試映射 Ch ... Cl 以在 Tmux 中的窗格之間移動時發現了這個問題。當我按下按鍵時,沒有任何內容傳輸到 Tmux。
這是在帶有 Bash 4.3.11 的 Ubuntu 14.04 VM 上。我正在從 Mac OS Mojave 登入。
我可以在 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)"