【发布时间】:2021-04-12 14:39:42
【问题描述】:
我正在编写一个 shell 历史应用程序,但在从 zsh 历史记录中删除命令时遇到了问题。在开发 bash 兼容性时,我使用 readline 来操作历史记录——我首先从 readline 的历史记录中删除命令,然后将历史记录写入文件。程序退出后,如果历史记录被操纵,那么我执行history -r 并得到预期的行为。由于 zsh 不使用 readline 并且它的 history 命令与在 bash 上可以找到的命令有很大不同,所以我别无选择,只能直接操作历史文件。但是,当我这样做时,在重新启动 shell 之前不会反映更改。我曾尝试使用zsh 等效的history -r,它应该是fc -R,但我没有得到预期的结果。虽然该命令在运行后从历史记录中删除,但按向上箭头(以返回上一个命令,应该是调用程序的命令)将我带到历史记录中看似随机的命令。
如果有人解释我遇到的奇怪行为,我将不胜感激。也欢迎任何指向正确方向的指针。
【问题讨论】: