189

最近、bash から zsh に切り替えたばかりですが、一度に 1 語ずつ行き来するAlt+LeftArrowKeyAlt+が恋しいです。RightArrowKey

現在、Alt+を押すLeftArrowKeyと、数文字前に戻り、スタックしてしまいます。Alt私はそれ以上戻ることはありませんし、私が期待するように+で行末に戻ることもありませんRightArrowKey。矢印キーを使用して行末に移動することさえできず、最後から 2 番目に移動するだけです。行に新しい文字を入力することも、実際に削除することもできません。

最愛のショートカットを取り戻すにはどうすればよいですか?

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

4

12 に答える 12

350

実行catしてからキーを押すと、ショートカットが送信するコードが表示されます。(完了したら+を
押して殺します。) 私にとっては、(ubuntu、konsole、xterm)+を押しますCtrlCcat
Alt←</kbd> sends ^[[1;3D, so i would put in my .zshrc

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

(実際にCtrlは、WindowsやLinux GUIの通常のテキストボックスのように、+矢印を使用して単語ごとに移動することを好みます。)

関連する質問:ターミネーターターミナルエミュレーターでZshを実行するときに、.zshrcのキー設定(ホーム/終了/挿入/削除)を修正する

于 2012-09-13T10:01:26.807 に答える
258

シェルに関係なく、iTermを使用しているすべての人向け

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

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

端末をネイティブの Mac キーバインドにできるだけ近い応答にするための圧縮ソリューションを作成しましたここ

iTerm 設定を開きます⌘</kbd>+, and navigate to the Profiles tab (the Keys tab can be used, but adding keybinding to your profile allows you to save your profile and sync it to multiple computers) and keys sub-tab and enter the following:

カーソルを 1 語左に移動

⌥</kbd>+←</kbd> Send Hex Codes: 0x1b 0x62

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

⌥</kbd>+→</kbd> Send Hex Codes: 0x1b 0x66

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

于 2015-07-09T21:58:36.780 に答える
82

~/.zshrc に以下を追加すると、OSX Mountain Lion でうまくいきました。

bindkey -e
bindkey '[C' forward-word
bindkey '[D' backward-word
于 2013-05-07T04:37:26.800 に答える
7

あなたの質問に厳密には答えていませんが、 と のデフォルトのバインディングforward-wordbackward-wordresp alt-f. alt-b.

これはどこでも機能し、ホーム行を離れる必要がなく、ニーモニックなプロパティ (f=forward、b=back) を持ちながら、ctrl-fandである と一貫性ctrl-bforward-characterありbackward-characterます。

あなたの矢印キーをはぎ取ってください!

于 2016-03-10T15:49:11.750 に答える
1

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

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

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

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

于 2014-03-19T15:06:11.847 に答える
0

CSI u モードで iTerm を使用している場合、.zshrc最終的なバインディングは次のようになります。

bindkey '^[[1;3D' backward-word
bindkey '^[[1;3C' forward-word
于 2020-08-30T22:56:52.737 に答える
0

iTerminal に ^Mf や ^Mb などの Emacs スタイルのショートカットを尊重させて単語を前後に移動させたい場合は、次のヒントを使用する最善の方法を見つけました。

他のOSと同じように「メタキー」をiTermに変換させる

于 2021-01-28T09:14:26.560 に答える