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