特定のコマンドが履歴に保存されないように除外

特定のコマンドが履歴に保存されないように除外

いくつかの特定のコマンドがzsh履歴に保存されないように除外したいと思います。

たとえば、HIST_IGNORE_SPACE設定に関係なく、mpv / mpcコマンドがzsh履歴に保存されないように除外します。

私は答えを見つけましたここところでテストしてみるとうまくいきませんね。

ベストアンサー1

履歴ファイルに追加する前に、フック機能を使用してコマンドを確認することを検討してください。

zshaddhistory() {
  case ${1%% *} in
    (mpv|mpc) return 1;;
  esac
  return 0;
}

man zshmiscマニュアルページのセクションを引用します(「フック機能」):

フック関数が状態1(または2以外のゼロ以外の値、それ以降のバージョンのシェルでは保証されていない)を返す場合、履歴行は保存されませんが、次のAが実行されるまで履歴に残ります。行が実行されるため、すぐに再利用または編集できます。

フック関数が状態 2 を返すと、履歴行は内部履歴リストに保存されますが、履歴ファイルには記録されません。衝突が発生すると、ゼロ以外の最初の状態値が使用されます。

おすすめ記事