コマンド履歴に保存する前に、末尾のスペースを削除してください。

コマンド履歴に保存する前に、末尾のスペースを削除してください。

コマンドを端末に貼り付けるとき、コピーした場所によっては改行や空白文字で終わる場合があります。末尾の空白文字は通常役に立たないので(シェルの観点からは何の意味もありません)、全体を表示することは役に立ちません。私は思ったZshオプションhist_reduce_blanksトリックを実行する必要がありますが、単語間のスペースのみを削除するようです。修正する方法はありますか?

ベストアンサー1

というZshフックがあります。zshaddhistory:

function zshaddhistory() {
    setopt local_options extended_glob
    print -Sr -- ${1%%[[:space:]]##}
    return 1  # suppress default behavior
}

対応するZshマニュアル:

注:Zsh(Bashとは異なり)には、履歴とは別に「最後のコマンド」を格納する特別なバッファがあります。このフックはこのバッファには影響しません。

おすすめ記事