zshの無制限の記録

zshの無制限の記録

今、zsh私は無限の歴史が欲しいです。設定HISTSIZE=して動作しますbash。これで前の履歴を取得します。

mv old_history .history

これはかなり大きいです。

wc -l .history
43562 .history

今終了してzsh再起動しても理解します。

wc -l .history
32234 .history

記録を無制限に持つことはできませんかzsh

ベストアンサー1

あなたのマシンは限界と可能性があります。

HISTFILE="$HOME/.zsh_history"
HISTSIZE=10000000
SAVEHIST=10000000
setopt BANG_HIST                 # Treat the '!' character specially during expansion.
setopt EXTENDED_HISTORY          # Write the history file in the ":start:elapsed;command" format.
setopt INC_APPEND_HISTORY        # Write to the history file immediately, not when the shell exits.
setopt SHARE_HISTORY             # Share history between all sessions.
setopt HIST_EXPIRE_DUPS_FIRST    # Expire duplicate entries first when trimming history.
setopt HIST_IGNORE_DUPS          # Don't record an entry that was just recorded again.
setopt HIST_IGNORE_ALL_DUPS      # Delete old recorded entry if new entry is a duplicate.
setopt HIST_FIND_NO_DUPS         # Do not display a line previously found.
setopt HIST_IGNORE_SPACE         # Don't record an entry starting with a space.
setopt HIST_SAVE_NO_DUPS         # Don't write duplicate entries in the history file.
setopt HIST_REDUCE_BLANKS        # Remove superfluous blanks before recording entry.
setopt HIST_VERIFY               # Don't execute immediately upon history expansion.
setopt HIST_BEEP                 # Beep when accessing nonexistent history.

~からZSHメーリングリスト:

メモリーの量、記録が占めることができるメモリーの量(わかっている限り、常にメモリーに完全にロードされている)を決定し、それに応じて対処する必要があります。制限を削除すると制限がないと考えられますが、常に利用可能なリソースによって制限されるので賢明ではありません。

あるいは、リソースの枯渇の問題が発生しないと思われる場合は、HISTSIZEをHISTSIZEをHISTSIZEの最大LONG_MAXに、HISTSIZEからLONG_MAXに設定することもできます。

Gentooソリューションの説明は次のとおりです。

export HISTSIZE=2000
export HISTFILE="$HOME/.history"

次のコマンドがないと、履歴は保存されません。

export SAVEHIST=$HISTSIZE

履歴内の重複エントリを回避するには(たとえば、単一のシェルセッション中にls -lを複数回入力するなど)、hist_ignore_all_dupsオプションを設定できます。

setopt hist_ignore_all_dups

これは、特定の項目の前に少なくとも1つのスペースを追加して履歴に書き込まれないようにするための便利な方法です。

setopt hist_ignore_space

おすすめ記事