tmux alt Meta zsh シェルバインディング

tmux alt Meta zsh シェルバインディング

iOS x Iterm2とメタの+ Esc設定を使用して、Alt(meta)+左右の矢印キーには、次のカスタムzshキーバインディングがあります。

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

これにより、Alt矢印付きのほとんどのGUIテキストエディタと同様に、シェルで単語ごとにジャンプできます。

ただし、これらのバインディングは、tmux セッションの開始時にのみ画面に印刷されます。

DCDCDC 

バインディングを許可するためにtmuxからzshを取得する方法を学びます。

答え1

Metaエスケープ文字表現要素は、c+形式の組み合わせにのみ適用されます。印刷可能な文字または制御文字です。ほとんどの端末はエスケープ文字の前にエスケープ文字を追加しないため、2つの連続したエスケープ文字を入力してEscapeアプリケーションでバインディングをトリガーできます。エスケープシーケンスには最初のエスケープ文字の後に制御文字は含まれません。

Ctrlキーストロークに対して端末から送信されたエスケープシーケンスを表示するには、+を押してからシェルプロンプトまたはでVキーストロークを押します(たとえば、Ctrl+ VMeta+)。クッキングモードの端末とシェルやViなどのアプリケーションでは、+は「制御文字であっても次の文字を文字通り挿入」を意味するため、+の後にエスケープシーケンスを送信するキー入力があると、そのエスケープシーケンスが挿入される(エスケープシーケンスに前のエスケープ文字を除く制御文字が含まれていないと仮定します。LeftcatCtrlVCtrlV

次の内容が表示されることがあります。

^[O1D

Meta+は、Leftエスケープ文字とその後に3つの文字を送信することを意味しますO1D。つまり、バインドする必要があることを意味します。

bindkey "^[O1D" backward-word

答え2

tmuxset-option -g xterm-keys onに追加またはtmux.conf入力されるたびに。:set-option -g xterm-keys on

答え3

iTermを使っていると言ったので、次の答えを見てください。
https://stackoverflow.com/a/70451722/4936193

当時、設定で遊ぶのはbindkey私には効果がなかったすべて削除し、iTermの設定を変更しました。そこに説明されているように、すべてが順調に行われました:)

関連情報