键盘快捷键(包括控制键)返回插入符号 (^) 加上大写输入字符

键盘快捷键(包括控制键)返回插入符号 (^) 加上大写输入字符

ssh从 Mac 切换到 Ubuntu 机器,但出于某种原因,键绑定无法正常工作。例如,当我尝试运行tmux快捷键CTRL+时b,它会返回^B

我能找到的最接近的问题是stty其中提出了不同的命令组合。我尝试了所有方法,但都没有解决问题。我检查了我的.bashrc文件,但找不到任何别名CTRL键的东西!

如果您能帮助我了解问题所在以及如何解决,我将不胜感激。

附注1.我被要求运行localelocale -a命令并在此处添加结果:

$ locale
LANG=en_US.UTF-8
LANGUAGE= LC_CTYPE="en_US.utf8" 
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8" 
LC_COLLATE="en_US.utf8" 
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8" 
LC_PAPER="en_US.utf8" 
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8" 
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8" 
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=en_US.utf8

$ locale -a 
C
C.UTF-8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IL
en_IL.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
POSIX

PS2我已经发布了我的.bashrcstty -a 这里

答案1

您需要确保 Ubuntu 机器和 Mac 都具有正确的区域设置。

对于 Ubuntu,您可以通过运行以下命令来执行此操作:

sudo locale-gen en_US.UTF-8
sudo update-locale

在仔细检查 Ubuntu 后,让我们关注 Mac。不过,问题很可能是你的 Mac 造成的。这取决于你使用的终端仿真器。如果你进入终端应用设置,请确保你已在启动时设置区域环境变量已启用,并设置为统一码 (UTF-8)

一旦您的语言环境匹配,两个系统应该对相同的按键做出类似的响应。

locale您可以通过在每台机器上发出命令来检查当前设置。

或者,locale也可以通过设置/更改这些环境变量来进行调整。例如,这些变量可以导出到.bashrc,或者其他一些文件中,可以选择来源,尽管有些人可能认为它们属于.profile

export LANG="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
export LC_NUMERIC="en_US.UTF-8"
export LC_TIME="en_US.UTF-8"
export LC_COLLATE="en_US.UTF-8"
export LC_MONETARY="en_US.UTF-8"
export LC_MESSAGES="en_US.UTF-8"
export LC_PAPER="en_US.UTF-8"
export LC_NAME="en_US.UTF-8"
export LC_ADDRESS="en_US.UTF-8"
export LC_TELEPHONE="en_US.UTF-8"
export LC_MEASUREMENT="en_US.UTF-8"
export LC_IDENTIFICATION="en_US.UTF-8"
export LC_ALL=

虽然这个例子很“典型”,但它建议将变量也设置LC_ALL为,据报道它适用于终端和 iTerm2:en_US.UTF-8

export LC_ALL="en_US.UTF-8"

相关内容