zsh、上矢印は一意のコマンドのみを繰り返しますか?


21

私は、上矢印を押すと、zshが最近編集したコマンドを表示するようにする設定を探しています。キャッチは、私は唯一のユニークなコマンドが欲しいです。現在、echo "hello world"50回入力した場合、エコーコマンドを入力する前に使用したコマンドを取得するには、上矢印を50回押す必要があります。これは控えめに言っても面倒です。

どの設定を有効/無効にする必要があるかについての考えはありますか?

回答:


23

HIST_IGNORE_ALL_DUPSコマンドの以前の一致をすべて破棄します。これは、履歴を後で行ったことのログとして使用する場合に混乱を招く可能性があります。

あなたのニーズに近いフィット感はおそらくHIST_IGNORE_DUPS、あるいはHIST_FIND_NO_DUPSオプション。

参照man zshoptions | less -p History

HIST_FIND_NO_DUPS:行エディターで履歴エントリを検索するとき、重複が連続していなくても、以前に見つかった行の重複を表示しません。

HIST_IGNORE_ALL_DUPS:履歴リストに追加される新しいコマンドラインが古いコマンドラインと重複する場合、古いコマンドはリストから削除されます(前のイベントではない場合でも)。

HIST_IGNORE_DUPS:コマンドラインが前のイベントと重複している場合、履歴リストに入力しないでください。


1
HIST_FIND_NO_DUPSは、私が思うよりも良い答えです。
ミケル

3

文字通りそれだけを行う方法はありませんが、HIST_IGNORE_ALL_DUPSオプションを設定すると、コマンドの最新バージョンのみが履歴に保持され、同じ効果が得られます。

詳細man zshoptionsをご覧ください。


よく働く!私が何かを逃していない限り、これはまさに私が望んだものです:)
リーオレイバー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.