我如何告诉ZSH重新加载自身,就好像它是一个新调用的shell,而又不丢失历史记录?
这样做的背景是,我花了很长时间构建我的ZSH设置,如果我当前的计算机出现故障或驱动器损坏等,我不愿意丢失它。为此,我将所有git存储库中的本地ZSH配置文件。到目前为止没有什么新鲜事。
但是现在我想在存储库中添加一个“安装”脚本,以简化在新计算机上安装设置的过程。安装文件后(实际上,在$ {ZDOTDIR-〜}中创建的符号链接指向存储库中的文件),我希望脚本重新加载它们,而无需通过exec替换当前进程(因此会丢失历史记录),而不是一一提供文件(并且冒着我可能以错误的顺序加载它们或错过ZSH启动过程中其他部分的风险)。
ZSH是否内置了某种功能,或通过其他方式告诉它重新加载所有内容,就好像它是一个新启动的实例一样,同时保留了命令历史记录?
编辑:哈。嗯,嗯,..当然,我现在已经清除了.zshrc和.zlogin,尽管后者没有什么困难(只是其中包含RVM的设置,很容易恢复)。但是,前者很伤人。人谁可以告诉我如何恢复从已采购它得到所有我的超级奖励积分壳.zshrc。当然,对原始问题的答案仍将标记为已接受。
我有一个问题。我写了一个shell脚本。现在我有两个问题:)
您可以启用该选项INC_APPEND_HISTORY
。从联机帮助页:
INC_APPEND_HISTORY
此选项的工作方式与APPEND_HISTORY相似,不同之处在于,新的历史记录行会(在输入后立即)添加到$ HISTFILE中,而不是等到shell退出后再添加。当行数超出$ SAVE-HIST指定的值20%时,仍将定期重写文件以修剪文件(另请参见HIST_SAVE_BY_COPY选项)。
这样,您就可以在exec zsh
不失去历史的情况下进行操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句