Terminal
了解當我使用 Ctrl-v 轉儲終端字元序列時會發生什麼?
如果我想將鍵映射綁定到 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
。這會導致某些組合鍵需要轉義(即使您不使用它)。您可能應該閱讀全文screen
和bindkey
手冊。