为什么当我先按下 CTRL 或 ALT 然后再按下其他键时,ZSH 在 Tmux 中的行为会有所不同

为什么当我先按下 CTRL 或 ALT 然后再按下其他键时,ZSH 在 Tmux 中的行为会有所不同

ZSH 通常可以正常工作,除了我在 Tmux 中使用它时。当我在任何其他键(例如(按单词跳转)或(删除单词))之前按下ALT或时,它会突然从这种样式更改为提示符:CTRLAlt + Left ArrowAlt + Backspace

在此处输入图片描述

变成这种风格:

在此处输入图片描述

然后什么都不起作用,直到我按下相同的键,但使用Right Arrow类似的键Alt + Right Arrow

当我在没有 Tmux 的情况下执行相同操作时,它运行良好,但我不知道为什么它在 Tmux 中不起作用。

答案1

tmux可能会像其他终端一样将这些组合键的其他序列发送到 shell。

CTRL+V检查在不同的终端仿真器中按下 (进入逐字模式)然后按下组合键后会得到什么。例如,xterm^[[1;3D]得到ALT+LEFT ARROW

然后找到您定义键绑定的位置(可能~/.zshrc)并更改或更好地增强这些新序列。

假设你之前

bindkey "^[b" backward-word

只需将其设为两行,第二行代表新识别的序列:

bindkey "^[b"      backward-word
bindkey "^[[1;3D]" backward-word

相关内容