Zsh:上向き矢印で同じコマンドをスキップする


10

ほとんどのUnixシェルでは、上矢印↑キーは、履歴内の前のコマンドによって編集されているコマンドを置き換えます。履歴は、コマンドを使用して表示できますhistory。

↑ 歴史の中で登るには、複数回押すことができます。

私の質問は:

↑現在のコマンドと同じコマンドをすべてスキップするようにシェルを構成するにはどうすればよいですか?

確かに、私は多くの場合make、続けて多くを入力します。古いコマンドをもう一度入力する(または少し変更する)場合、↑すべてのmakeコマンドをスキップするだけで何度もヒットする必要があります。

↑シェルの生産性を向上させる唯一のヒントではないことは知っています。

ボーナス:

  • Bashシェルで機能する構成を指定します。
  • 履歴を保存します(連続して何度もコマンドを入力したことを知っていると便利です)

回答:


15

zshの場合、これを構成に追加します。

setopt histignoredups

それが何をするか、それは検索中に重複した履歴エントリを無視します。

bashの同等の設定は

HISTCONTROL=$HISTCONTROL:ignoredups

1
おかげでsetopt histignoredups、仕事をしますが、履歴からの重複も抑制します
— Gabriel Devillers

はい、正確に。ほとんどの場合、これで十分です。提案を見て、それを望まない場合、これを再度提案する必要はありません。履歴から重複は削除しません。
— Martin Sugioarto 2016

あなたは正しいですが、私は意味しました:将来の重複は履歴に追加されません。
— Gabriel Devillers

それ以外の場合は追加されますが、histexpiredupsfirst私が使用する他のオプションと呼ばれるオプションは意味がありません。年齢を調べる前に、重複が最初に期限切れになります。(私はここでzshについて話している)
— Martin Sugioarto
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.