tmux alt meta zsh shell 绑定

tmux alt meta zsh shell 绑定

我有以下自定义 zsh 键绑定,用于 alt(元)+ 左右箭头键与 i os x Iterm2 和元的 +Esc 设置

bindkey "^[^[[D" backward-word
bindkey "^[^[[C" forward-word

这允许在 shell 上按单词跳转,就像在大多数带有 alt 箭头的 GUI 文本编辑器中一样。

但是,当启动 tmux 会话时,这些绑定只会在屏幕上打印。

DCDCDC 

知道如何让 tmux 中的 zsh 接受绑定。

答案1

Meta转义符表示元仅适用于+ cwhere形式的组合C是可打印字符或控制字符。大多数终端不会在转义序列前面添加转义字符,因此您可以键入两个连续的转义字符来触发Escape应用程序中的绑定,并且转义序列在初始转义字符之后不包含控制字符。

要查看终端针对击键发送的转义序列,请在 shell 提示符下或在 中按Ctrl+V然后按该击键,例如Ctrl+V然后Meta+ 。在熟模式下的终端以及 shell 和 Vi 等应用程序中,+表示“按字面意思插入下一个字符,即使它是控制字符”,因此+后跟发送转义序列的击键会导致插入该转义序列(假设转义序列除了前导转义字符之外不包含任何控制字符)。LeftcatCtrlVCtrlV

你可能会看到这样的东西:

^[O1D

意味着Meta+Left发送转义字符,后跟三个字符O1D。这意味着您需要绑定

bindkey "^[O1D" backward-word

答案2

每次添加set-option -g xterm-keys ontmux.conf或进入:set-option -g xterm-keys ontmux 内部。

答案3

既然您提到您正在使用 iTerm - 请看一下这个答案:
https://stackoverflow.com/a/70451722/4936193

bindkey设置对我来说不起作用,然后我刚刚删除了所有这些并更改了我的 iTerm 设置正如那里所描述的,一切都很顺利:)

相关内容