Bash: カーソルを 1 単語ずつ左に移動するにはどうすればいいですか?

Bash: カーソルを 1 単語ずつ左に移動するにはどうすればいいですか?

OSX では、 キーを押してoption、編集する必要がある単語に到達するまで左カーソル キーを押すだけです (または、Vi では を押すだけですbが、ターミナルでこれを行う方法をまだ理解できていません...

答え1

Ctrlキー バインディングを設定するには、まず+キー シーケンスが作成するキー コードを調べる必要がありますLeft。 コマンドを使用してcat既存のキー バインディングとの干渉をオフにしてから、キー シーケンスを入力します。私のシステム (Linux) では、次のようになります。

$ cat
^[[1;5D

Ctrl+を押してdcat を終了します。これで、Ctrl + 左を押すと 6 つのキー コードが発行されることがわかりました。

  • 脱出 (^[)
  • [
  • 1
  • ;
  • 5

これで、bind コマンドを発行できます。

bind '"\e[1;5D": backward-word'

答え2

必要なbash関数は です。 を実行すると、その関数にバインドされているキーのリストを取得backward-wordできます。一般的なバインドは+です。bind -q backward-wordEscb

また、多くの端末はCtrl+ をサポートしていますLeft(X で単語単位で戻るために使用できるのと同じホットキーです)

答え3

Bash のデフォルトのキー ショートカットは+backword-wordです。 +でも同じ結果を得ることができます。キーバインドを編集する前に、これらを試してみる必要があります。AltbEscb

特定のアクションの現在のキーバインドをbind編集または取得するには、コマンドを使用します。bind -q [name]

関連情報