the*_*fog 1 terminal character-encoding escape-characters
如果我想将键映射绑定到 zsh 中的函数或小部件,我了解到我首先必须在提示符下点击Ctrl+ v-,然后输入我想要使用的键序列,然后在我的键绑定中使用输出命令。
例如,如果我想映射到在编辑器中打开当前命令行内容的操作,我需要Ctrl+xCtrl+v
^X^E^X^E并在我的键绑定命令中使用它,例如bindkey "^X^E" edit-command-line
Run Code Online (Sandbox Code Playgroud)
为什么这是必要的,当我这样做时,“幕后”实际发生了什么?
当您按下Ctrl- 时V,shell 将通过忽略键盘中断并简单地将按下的组合键作为输入字符来启动。这很容易实现,因为 ASCII 旨在容纳所有控制字符。
当然,在显示器上它必须作弊并显示^相应的键,否则它会输出控制字符而不是您需要看到的内容。
请注意,bindkey文档显示它支持控制字符的两种表示法:(示例参考Ctrl- X)
^XC-后跟控制字符;例如:C-x。这会导致某些组合键需要转义(即使您不使用它)。您可能应该阅读全文screen和bindkey手册。