如果我想將鍵映射綁定到 zsh 中的函數或小部件,我了解到我首先必須在提示符下按Ctrl+ -,然後輸入我想要使用的鍵序列,然後在我的鍵綁定中使用輸出v命令。
因此,例如,如果我想映射到在編輯器中開啟當前命令列內容的操作,我需要Ctrl+xCtrl+v
- 按Ctrl+ v- 進入“轉儲鍵模式”
- 打Ctrl+xCtrl+v
- 就我而言,這會產生
^X^E
- 就我而言,這會產生
- 獲取
^X^E
並在我的鍵綁定命令中使用它,例如
bindkey "^X^E" edit-command-line
為什麼這是必要的以及當我這樣做時“幕後”實際發生了什麼?
答案1
當您按Ctrl-時V,shell 將忽略鍵盤中斷並簡單地將按下的組合鍵作為輸入字元來啟動。這很容易實現,因為 ASCII 旨在保存所有控製字元。
當然,在顯示時它必須稍微作弊並顯示後面^
跟著相應的鍵,否則它會輸出控製字元而不是您需要看到的內容。
請注意,bindkey
文件顯示它支援兩種控製字元表示法:(範例參考Ctrl- X)
- 脫字符號表示法,即明確寫入脫字符號 ( ^),後面接著對應的文字控製字元(本問題中不需要Ctrl-V方法);例子:
^X
C-
後跟控製字元;例:C-x
。這會導致某些組合鍵需要轉義(即使您不使用它)。您可能應該閱讀全文screen
和bindkey
手冊。