在 zsh 的提示符中显示下一个命令的历史记录编号时(我使用的是 5.0.2 版本),它在忽略histignorespace
和histnostore
命令后意外地增加(然后只在下一个命令)但在忽略命令后仍能按我预期的方式工作histignoreddups
。
行为差异有充分的理由吗?我可以让提示始终显示下一个(未忽略的)命令的历史事件,即使它紧随被忽略的“间隔”或history
命令之后?
histignorespace
令我吃惊的是:
% PROMPT='%! >' zsh --no-rcs --histignorespace
1 > true ignore me
2 >true two
2 >history
1 true two
正如histnostore
(我也认为立即调用包括它自己很奇怪):
% PROMPT='%! >' zsh --no-rcs --histnostore
1 >history
1 history
2 >true two
2 >history
1 true two
但histignoredups
正如我预期的那样:
% PROMPT='%! >' zsh --no-rcs --histignoredups
1 >true repeated
2 >true repeated
2 >true two
3 >history
1 true repeated
2 true two
答案1
行为上的差异有充分的理由吗?
是的。Z Shell 的行为与其手册中所述一致:
请注意,该命令会保留在内部历史记录中,直到输入下一个命令后才会消失,这样您就可以短暂地重复使用或编辑该行。
阅读zshoptions
手册以获取完整信息。