入力したプレフィックスで始まる最後のコマンドを呼び出すために、bashで上/下をどのように押しますか?
例えば
$ ls foo
$ echo hello
$ ls <UP_ARROW>
lsと入力してUPをクリックすると、「echo hello」の代わりに「ls foo」と表示されます。
答え1
さまざまな可能性:
バインディング
history-search-backward/forward
コマンド。私はこれがあなたが望むものに最も近いと思います。bind '"\e[A":history-search-backward' bind '"\e[B":history-search-forward'
履歴i-検索を使用してください。これはおそらく避けられないでしょう
^R
。空の行がある場合は、^Rls<space>
に戻り、前の最後のコマンド(または行の他のコマンド)に戻りls foo
ます。^R
ls
ls
ls foo
バインディング
magic-space
コマンド:bind SPACE:magic-space
.then(空白行に)を入力すると、!ls<space>
readlineは自動的に履歴交換を実行しますls foo
。