もちろんこれを行う非常に簡単で賢明な方法がありますが、zshellの記録はfcのエイリアスのようです。履歴から行を削除する方法は?。
これを行う方法についてのアドバイスはありますか?マイユースケースは、履歴から最後に実行されたコマンドを削除してオートコンプリートを停止することです(主に誤った内容を入力して表示され続ける場合)。
次のようにして最後のコマンドを発行できることを知っています。
history | tail -n 1
しかし、History -dは機能しないため、zshの正しいドキュメントが見つかりません。
ベストアンサー1
Zshは真の履歴編集機能を提供しません。コマンド履歴はデフォルトで読み取り専用です。あなたができることは、それを卸売に置き換えることだけです。
コマンド履歴の編集:
- ファイルに保存します。
fc -W
- ファイルの編集
- ファイルから履歴を読み込む:
fc -R
設定でファイル名を選択できますHISTFILE
。
テストされていないコード:
remove_last_history_entry () {
setopt local_options extended_history no_hist_save_no_dups err_return
local HISTFILE=~/.zsh_history_tmp_$$ SAVEHIST=$HISTSIZE
fc -W
ed -s $HISTFILE <<EOF >/dev/null
d
w
q
EOF
fc -R
}