2016-08-15 13 views
2

最近tcshからbashに切り替わりました。私は以前の履歴コマンドを定期的に起動して編集を開始しますが、最初に別のコマンドを実行する必要があることを認識しています。 bashでは、これは元のコマンドを編集し、元々入力したものを見ることができません。 tcshでは、上向き矢印と下向き矢印を使用すると、編集したコマンドがスタックの一番下にあり、準備ができたら編集や実行を続ける準備ができています。bashの偶発的な履歴編集を防止する

私が見つけたthis questionは、履歴の再実行と編集に関するbashの仕組みを理解するのに役立ついくつかの回答がありましたが、このようなことがあれば変更する方法はまだ分かりません。すでに実行されているコマンドをbashが編集できないようにすることはできますか?

私は

abcd 
    efgh 
    ijkl 

を実行し、EFGまで矢印とバックスペースEFGH使用した場合、その後、ダウンヒットと異なるコマンド「MNOP」と入力は、私は私の歴史が見えるようにしたい:

abcd 
    efgh 
    ijkl 
    mnop 

は現在、それは次のようになります。

abcd 
* efg 
    ijkl 
    mnop 

これは些細な問題のように見えるが、のrunninときもg試行錯誤を必要とする複数のパイプで長いコマンドを実行すると、作業が大幅に失われます。

+2

Ctrl + cを押して、押し下げないでください。 – Cyrus

+0

ありがとう - 知っておきたいことです。時々私はこれを忘れるかもしれませんが、これとchepnerの答えの間には私ははるかに良い形にすべきです。 – cookem

答えて

1

各行は、あなたが最新の変更を元に戻すことC-x C-uまたはC-_にアクセスすることができ、または最後に保存されたので、M-rは、すべての変更を元に戻すために、独自のアンドゥリストを維持します。

+0

これは完璧です。共有してくれてありがとう。このようなショートカットを見つけるにはどうすればいいですか?これは、「bash history edit」や「bash history」を検索したときに発生したものではなく、これらのキーボードショートカットがないと履歴を元に戻すことはできないようです。 – cookem

+0

'bind'組み込みコマンドについて読んで、マニュアルページの' Readline'セクションを読んでください。多くの関数はデフォルトのバインディングを持っていますが、 'bind'を使ってそれらを変更するか、デフォルトでバインドされていないコマンドのバインディングを追加することができます。 – chepner

+0

@cookem:見てみましょう:[私の質問に誰かが答えたときにどうすればいいですか?](http://stackoverflow.com/help/someone-answers) – Cyrus

関連する問題