zshのhistoryに指定したコマンドを残さない
zshのコマンド履歴非常に便利ですよね。
せっかくなら検索性能を上げるたいと思いに設定してみました。
特に残す必要のないlsなどをどうやって回避しようか悩んでいましたが
こちらのサイトにずばりなものが載っていました。
mollifier.hatenablog.com
こちらがヒストリー関連の全体です。
######################################## # history ######################################## HISTFILE=~/.zsh_history HISTSIZE=1000000 SAVEHIST=1000000 setopt hist_ignore_dups # 前と重複する行は記録しない setopt share_history # 同時に起動したzshの間でヒストリを共有する setopt hist_reduce_blanks # 余分なスペースを削除してヒストリに保存する setopt HIST_IGNORE_SPACE # 行頭がスペースのコマンドは記録しない setopt HIST_IGNORE_ALL_DUPS # 履歴中の重複行をファイル記録前に無くす setopt HIST_FIND_NO_DUPS # 履歴検索中、(連続してなくとも)重複を飛ばす setopt HIST_NO_STORE # histroyコマンドは記録しない # http://mollifier.hatenablog.com/entry/20090728/p1 zshaddhistory() { local line=${1%%$'\n'} #コマンドライン全体から改行を除去したもの local cmd=${line%% *} # 1つ目のコマンド # 以下の条件をすべて満たすものだけをヒストリに追加する [[ ${#line} -ge 5 && ${cmd} != (l|l[sal]) && ${cmd} != (cd) && ${cmd} != (m|man) && ${cmd} != (r[mr]) ]] }