假设我A在文本编辑器中按下键,这会a
在文档中插入字符并将其显示在屏幕上。我知道编辑器应用程序没有直接与硬件通信(中间有内核和其他东西),那么我的计算机内部发生了什么?
在 bash 中,我按ctrl+v开始逐字插入。在逐字模式下,我按下Esc键,bash 显示^[
。我将其重定向到 file esc
。
同样在逐字模式下,我按ctrl键[,bash 显示^[
。我将其重定向到 file ctrl
。
接下来我对比两个文件,发现是一样的!
$ echo '^[' > esc
$ echo '^[' > ctrl
$ diff esc ctrl
$
Run Code Online (Sandbox Code Playgroud)
为什么Ctrl+[和Esc会产生相同的内容?
^[
这是C0 和 C1 控制代码吗?如果是这样,维基文章说^[
是 Escape,那么为什么ctrl+[也是 Escape?
根本问题是我想检查并创建一个键绑定。
(zsh)$ bindkey -L
...
bindkey "^['" quote-line
...
Run Code Online (Sandbox Code Playgroud)
那么我需要输入ESC+'
or吗ctrl+[+'
?