了解當我使用 Ctrl-v 轉儲終端字元序列時會發生什麼?

了解當我使用 Ctrl-v 轉儲終端字元序列時會發生什麼?

如果我想將鍵映射綁定到 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。這會導致某些組合鍵需要轉義(即使您不使用它)。您可能應該閱讀全文screenbindkey手冊。

相關內容