Bash

如何創建跨平台鍵盤綁定命令?

  • December 17, 2012

我想在我使用的所有終端中使用相同的鍵盤快捷鍵。由於它們上沒有相同的 *nix,並且終端可能非常不同,因此我正在尋找一種合理便攜的方式來從一個 *nix 終端獲取鍵盤快捷鍵(至少受標準 Ubuntu 12.04 安裝支持)到其他終端(僅限 Bash)。

也就是說,我試圖在一個終端中生成命令以在另一個終端上執行,以便在第二個終端中使用相同的鍵盤快捷鍵。特別是像Alt- Del(刪除游標右側的單詞)和Ctrl- Left(將游標向左移動一個單詞)之類的東西,在我工作的某些主機上,它們只是列印轉義碼而不是執行預期的操作。

這也意味著作為可能更改.inputrc目標主機上的前兆。重要的一點是能夠

  1. 找出我的本地主機上定義了哪些鍵盤快捷鍵。
  2. 找出是否沒有從遠端主機定義任何常用的快捷方式。
  3. 將快捷方式定義復製到遠端主機。
  4. 驗證快捷方式在遠端主機上是否按預期工作。
  5. 合理地確定這些快捷方式也可以在第三台主機上工作,可能與非常舊版本的 Bash 和標準工具(如grep和)一起使用sed

目前的解決方案如下:

bind -p | grep -ve '^$' -e '^#' -e 'self-insert$' | sed -e "s/\(.*\)/bind '\1'/" | tr -s '\n' ';'

這會產生如下一行:

bind '"\C-g": abort';bind '"\C-x\C-g": abort';[...];bind '"\e\C-y": yank-nth-arg';bind '"\ey": yank-pop';

這似乎可行,但我不確定它是否可移植。

引用自:https://unix.stackexchange.com/questions/52083