我正在 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
),您可能会看到差异。