Terminal

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

  • May 20, 2016

如果我想將鍵映射綁定到 zsh 中的函式或小元件,我了解到我首先必須在提示符下按Ctrl+ v-,然後輸入我要使用的鍵序列,然後在我的鍵綁定中使用輸出命令。

因此,例如,如果我想映射到在編輯器中打開目前命令行內容的操作,我需要Ctrl`+`x````Ctrl`+`v

  • 點擊Ctrl+ v- 進入“轉儲鍵模式”
  • Ctrl`+`x````Ctrl`+`v
    • 就我而言,這會產生^X^E
  • ^X^E我的鍵綁定命令中使用並使用它,例如
bindkey "^X^E" edit-command-line

為什麼這是必要的,當我這樣做時“幕後”實際發生了什麼?

當您按下Ctrl-V時,shell 將忽略鍵盤中斷並簡單地將按下的組合鍵作為輸入字元。這很容易實現,因為 ASCII 旨在保存所有控製字元。

當然,在顯示器上它必須作弊並顯示^相應的鍵,否則它會輸出控製字元而不是你需要看到的。

請注意,bindkey文件顯示它支持控製字元的兩種表示法:(範例參考Ctrl- X

  • 插入符號,它以^文本形式顯式編寫插入符號 ( ),後跟相應的控製字元(在這個問題中不需要Ctrl-V方法);例子:^X
  • C-後跟控製字元;例子:C-x。這會導致某些組合鍵需要轉義(即使您不使用它)。您可能應該閱讀全文screenbindkey手冊。

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