为什么擦除和杀死角色会做同样的事情?

为什么擦除和杀死角色会做同样的事情?

在我的机器上的设置中stty -a,有诸如erase = ^?; kill = ^U;.手册页报告说

   erase CHAR
          CHAR will erase the last character typed

   kill CHAR
          CHAR will erase the current line

但我发现相应的键盘快捷键实际上可以做同样的事情,即当我boo在终端输入然后按<ctrl>+U或 时,<ctrl>+?在两种情况下该行都会被完全删除。

那么为什么擦除字符不只擦除最后一个字符呢?

答案1

我刚刚在 shell 提示符下测试了这一点并得到了类似的结果。然而,仔细检查就会发现错误。

ctrl+ /(您可能认为是 ctrl-?)实际上会生成 ctrl-_,它通常绑定到“撤消”。如果你想要ctrl-?你需要按ctrl+ shift+ ?。您可以通过输入ctrl+ v ctrl+来测试这一点/

请注意,stty 命令会影响“cooked”模式下的终端编辑,其中撤消键不起作用。所以我的猜测是,您正在使用像 bash 这样的 shell,它实现了自己的命令行编辑,这可能会遵循 stty 设置,但并非必须如此,并且还添加了许多更精美的编辑键。

相关内容