Bash履歴の編集をキャンセルする方法はありますか?

Bash履歴の編集をキャンセルする方法はありますか?

上矢印キーを押すと、以前に入力したコマンドに移動できます。そのうちの1つを修正すると履歴が変わることがわかりました。たとえば、次のように入力すると:

echo a
echo b
echo c
[up][up][backspace]d[ctrl+c]

今の記録によると、2番目のコマンドではecho dありませんでしたecho b。どうすればecho b歴史上1位を維持できますか?

たとえば、多くのオプションを含む非常に長いコマンドを実行するとします。その後、やり直したいと少し変更したかったので、履歴を見直して変更しましたが、実際にやり直す必要はないことに気づき、代わりに別のオプションを考えました。その後、後で戻って私が実行したコマンドを覚えたいです。しかし、ちょっと待ってください。これで、履歴に誤った内容が表示されます。

このようなことはほとんど発生しませんが、発生すると迷惑になります。元の履歴を自動的に保存する方法はありますか?

ベストアンサー1

あなたの~/.inputrc

 set revert-all-at-newline on

場合によっては、デフォルト値(off)として見つけることができます。戻る前に実行すると、履歴行に対するすべての変更を
強制的にキャンセルする必要があります。 (詳細を参照してください)。readlineaccept-lineman bash

編集する:
CTRL+cそれ以来、set revert-all-at-newline onうまくいきますbash-4.3.30

# GNU bash, version 4.3.30(1)-release
# Emacs-mode

echo c
[up][backspace]d[Ctrl+c][up] # you should see echo c

しかし:

echo c
[up][backspace]d[down][Ctrl+r]echo[Ctrl+j][Ctrl+c][up] # you should see echo d

おすすめ記事