web-dev-qa-db-ja.com

zshでALT + LeftArrowKeyソリューションを探しています

私は最近bashからzshに切り替えましたが、私は Alt+LeftArrowKey そして Alt+RightArrowKey 一度に言葉を行き来する。

今、私が押すと Alt+LeftArrowKey 私は数通の手紙に戻り、それから立ち往生しています。私はこれ以上逆行せず、行末まで戻りません Alt+RightArrowKey 私が期待するように。矢印キーを使用して行の最後まで移動することもできず、最後から2番目の行までしか移動できません。行に新しい文字を入力することも、実際に削除することもできません。

お気に入りのショートカットを元に戻すにはどうすればよいですか?

それが重要な場合は、Mac OS Xでターミナルを使用しています。

93
Mads Ohm Larsen

catを実行し、キーを押してショートカットが送信するコードを確認します。
(押す Ctrl+C 完了したらcatを強制終了します。)
私にとっては、(ubuntu、konsole、xterm)を押す Alt+ ^[[1;3Dので、。zshrcに入れます

bindkey "^[[1;3C" forward-Word
bindkey "^[[1;3D" backward-Word

(実際に使用したい Ctrl +矢印は、WindowsまたはLinux guiの下の通常のテキストボックスのように、WordごとにWordを移動します。

関連質問: ターミネーターターミナルエミュレーターでZshを実行している場合の.zshrcでのキー設定(ホーム/終了/挿入/削除)の修正

187
lolesque

シェルに関係なく、iTermを使用しているユーザー向け

私の意見では、ここで提供されるすべてのソリューションは後方アプローチを採用しています。基本的に、端末に設定したescシーケンスまたはその他のキーバインディングをリッスンするようシェルに指示し、シェルを切り替えると互換性の問題が発生します(他のシェルにSSHで接続する場合、BASHからZSHに切り替えるなどして失うすべてではありませんが、いくつかのキーバインディング)。

ほとんどのシェルには、事前にバインドされた一連のデフォルトシーケンスがあります。さらに、100%の一貫性はありませんが、十分に近いものです。したがって、シェルで特定のアクションのキーバインドを作成する最も簡単な方法は、シェル間で一貫性のあるデフォルトのキーバインドにバインドするよう端末アプリケーションに指示することです。

私はあなたの端末をネイティブのMacキーバインディングに近いものとして応答させるための圧縮ソリューションを書きました here

ITerm設定を開きます +, Profilesタブに移動します(Keysタブを使用できますが、プロファイルにキーバインドを追加すると、 プロファイルを保存 して複数のコンピューターと同期できます)およびkeysサブタブで、次を入力します。

カーソルを1単語左に移動

+ 16進コードを送信:0x1b 0x62

カーソルを1単語右に移動

+ 16進コードを送信:0x1b 0x66

ZSHだけでなく、BASH、irb/pry、ノードなどを実行しているサーバーにSSHで接続する場合にも、望ましい動作が得られるはずです。

139
Travis

以下を〜/ .zshrcに追加すると、OSX Mountain Lionで機能しました。

bindkey -e
bindkey '[C' forward-Word
bindkey '[D' backward-Word
64
Rob Sawyer

MacOS High Siera 10.13.6またはMojave 10.14.2およびZSHでiTerm2を使用する場合

bindkey "\e\e[D" backward-Word
bindkey "\e\e[C" forward-Word

別の解決策は、rmeのために動作しません

8
Vetalll

厳密にあなたの質問に答えているわけではありませんが、forward-Wordbackward-Wordのデフォルトのバインディングはalt-fです。 alt-b

これはどこでも機能し、ホーム行を離れる必要がなく、ニースのニーモニックプロパティ(f = forward、b = back)を持ち、ctrl-fおよびctrl-bであるforward-characterおよびbackward-character

矢印キーを外します!

5
0x89

Mavericks(10.9.4)では、コードは1; 5 ...です。したがって、矢印でaltをバインドするために、これを使用する.zshrcがあります。

bindkey "^[[1;5C" forward-Word
bindkey "^[[1;5D" backward-Word

CTRL + Vを使用してから、使用するコマンドを使用できます

ヨセミテではロブのソリューションを使用

1
ZeoS

私のためにそれを機能させるには、 この答え を使用しましたが、コードを交換する必要がありました(左<->右)

⌥+←16進コードの送信:0x1b 0x66
⌥+→16進コードの送信:0x1b 0x62

~/.zshrcに次を追加します

bindkey -e
bindkey "^[b" forward-Word
bindkey '^[f' backward-Word
0
iRonin

Zshでは、bindkeyコマンドを使用してキーボードショートカットを表示できます。

bindkeyを使用して、カスタムキーバインドなしで使用可能なオプションを調べます。

すなわち^[b Wordを後方に移動し、^[f単語を進める。

0
MCI