两个 Enter 键的行为不同

两个 Enter 键的行为不同

我正在 Zorin 16 下使用alacritty终端模拟器。我的两个 Enter 键给出了不同的输出。

% showkey -a

Press any keys - Ctrl-D will terminate this program

^M   13 0015 0x0d
^J   10 0012 0x0a

主 Enter 键给出 ^M,小键盘 Enter 键给出 ^J。

对于 bash 和 zsh 都是如此。

我希望两个键都给出 ^M。

我怎样才能实现这个目标?

答案1

是的,看来alacritty默认配置为发送 LF(又名\n^J) 在键盘输入时,并且无论是否启用应用程序键盘模式(在 后tput smkx),即使 terminfo 条目(至少在 Ubuntu 20.04 上)具有kent=\EOM,而所有其他终端发送 CR (大多数\EOM在 后发送tput smkx)。

您可以通过添加以下内容来更改它:

key_bindings:
  - { key: NumpadEnter, chars: "\r" }

到您的~/.config/alacritty.yml(或该文件的首选路径,有多个选项,请参阅手册)。

icrnl请注意,在任何情况下,终端设备驱动程序通常默认配置为在输入时自动将 CR 转换为 LF(在 的输出中查找stty -a),因此在实践中通常不会产生太大差异。仅对于那些禁用该设置的 TUI 应用程序(确实如此showkey),您可能会看到差异。

相关内容