在保存到命令历史记录之前删除尾随空格

在保存到命令历史记录之前删除尾随空格

当我将命令粘贴到终端时,有时它会以一些换行符或空格字符结尾,具体取决于我复制的位置。尾随空白字符通常是无用的(从 shell 的角度来看它们没有任何意义),因此完整地显示它们是无用的。我以为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 不同)有一个特殊的缓冲区来保存与历史记录分开的“最后命令”。该挂钩不会影响该缓冲区。

相关内容