bash レコードのプレフィックスを敏感にする方法は?

bash レコードのプレフィックスを敏感にする方法は?

入力したプレフィックスで始まる最後のコマンドを呼び出すために、bashで上/下をどのように押しますか?

例えば

$ ls foo
$ echo hello
$ ls <UP_ARROW>

lsと入力してUPをクリックすると、「echo hello」の代わりに「ls foo」と表示されます。

ベストアンサー1

さまざまな可能性:

  1. バインディングhistory-search-backward/forwardコマンド。私はこれがあなたが望むものに最も近いと思います。

    bind '"\e[A":history-search-backward'
    bind '"\e[B":history-search-forward'
    
  2. 履歴i-検索を使用してください。これはおそらく避けられないでしょう^R。空の行がある場合は、^Rls<space>に戻り、前の最後のコマンド(または行の他のコマンド)に戻りls fooます。^Rlslsls foo

  3. バインディングmagic-spaceコマンド:bind SPACE:magic-space.then(空白行に)を入力すると、!ls<space>readlineは自動的に履歴交換を実行しますls foo

おすすめ記事