zsh を使用する場合、履歴を無視

zsh を使用する場合、履歴を無視

HISTORY_IGNORE変数を設定しましたが、~/.zshrcこのコマンドの作成を正しく防止しました~/.zsh_history

upしかし、私が本当に欲しいのは、とを押すとこれらの項目が表示されないことですdown。 (bashを使用する場合と同じHISTIGNORE

どうすればいいですか?

ベストアンサー1

これを行うには、フックを作成する必要があります。言う通りHISTORY_IGNOREドキュメントから:

HIST_NO_STOREオプションまたはフックを比較してくださいzshaddhistory。どちらかを使用すると、そのコマンドは対話履歴に追加されません。HISTORY_IGNORE最初から履歴の追加を停止するには、次のフックを定義できます。

zshaddhistory() {
  emulate -L zsh
  ## uncomment if HISTORY_IGNORE
  ## should use EXTENDED_GLOB syntax
  # setopt extendedglob
  [[ $1 != ${~HISTORY_IGNORE} ]]
}

私が直接テストした結果、重要な結果は次のとおりです。

  • $1含む線を越えて最後に。スキーマを作成するときは、この点に注意してくださいHISTORY_IGNORE。これを考慮しないと、一致するものはありません。
  • この機能は、Zsh がインメモリー履歴を履歴ファイルに書き込むたびに適用されます。このように、遡って履歴からその行を削除してください。これに注意してください!

おすすめ記事