我该如何告诉ZSH重新加载自身,就像是一个全新的shell,但又不会丢失历史记录?
这个问题的背景是,我花费了很长时间来构建我的ZSH设置,如果我的当前机器出现故障或驱动器损坏等情况,我会很遗憾地失去它。为此,我将所有本地ZSH配置文件放在了git存储库中。到目前为止还没有什么新东西。
但现在我想在存储库中添加一个“安装”脚本,以便于在新机器上安装我的设置过程。一旦文件被安装(实际上是在${ZDOTDIR-~}中创建符号链接,指向存储库中的文件),我希望脚本可以重新加载它们,而不用通过exec替换当前进程(因此不会丢失历史记录),也不用逐个源化文件(并冒着可能以错误的顺序加载它们或错过ZSH启动过程的某些其他部分的风险)。
是否有一些内置于ZSH的设施或其他方法可以告诉它重新加载所有内容,就像是一个全新启动的实例,同时保留命令历史记录?
这个问题的背景是,我花费了很长时间来构建我的ZSH设置,如果我的当前机器出现故障或驱动器损坏等情况,我会很遗憾地失去它。为此,我将所有本地ZSH配置文件放在了git存储库中。到目前为止还没有什么新东西。
但现在我想在存储库中添加一个“安装”脚本,以便于在新机器上安装我的设置过程。一旦文件被安装(实际上是在${ZDOTDIR-~}中创建符号链接,指向存储库中的文件),我希望脚本可以重新加载它们,而不用通过exec替换当前进程(因此不会丢失历史记录),也不用逐个源化文件(并冒着可能以错误的顺序加载它们或错过ZSH启动过程的某些其他部分的风险)。
是否有一些内置于ZSH的设施或其他方法可以告诉它重新加载所有内容,就像是一个全新启动的实例,同时保留命令历史记录?
编辑:哈。嗯...当然,我现在已经清空了我的.zshrc和.zlogin文件,虽然后者不是什么大问题(它只是RVM的设置,很容易恢复)。但前者确实让人痛苦。任何能告诉我如何从已经加载了.zshrc的shell中恢复它的人都将得到我所有的超级加分。当然,对原始问题的答案仍将被标记为已接受。
我有一个问题。我写了一个shell脚本。现在我有两个问题 :)
source ~/.zshenv
命令以重新加载该文件中的内容。 - Jonny