2017-04-18 28 views
0

我已经添加了几个别名到我的.zshrc文件,并且它们只在我重新启动终端或使用source ~/.zshrc时才起作用如果我只是打开终端,然后输入别名,它将不会识别它,直到我打电话source ~/.zshrcZSH总是需要重新启动终端才能访问别名

所以我知道这不是我创建的别名的问题,我只需要加载.zshrc文件,每次我想要使用它们。

这是怎么回事?我怎样才能解决这个问题?

回答

1

那么,你不希望你只需要编辑一个文件,然后通过魔术,所有你当前的zsh实例以某种方式摄取变化,是吗?

从zsh的手册页,部分启动/关机FILES

如果shell是交互式的,命令从/ etc/zshrc读取,然后$ ZDOTDIR/.zshrc

( $ ZDOTDIR默认为您的$ HOME)。因此,如果你在你的终端,你有三种选择。其中两个你已经找到(重新启动终端,手动源.zshrc)。第三个选择是打开一个zsh子shell(通过输入zsh)。

其实,有一招,做一些“神奇”自动读取文件:岩组允许你定义一个所谓的PRECMD勾,它允许你建立一个任意的命令是刚刚执行在显示命令提示符之前。你可以用它来找到你喜欢的任何文件。如果您想使用此功能,我强烈建议针对采购所有.zshrc。迟早你会在.zshrc中拥有你不想每次都执行的东西。

相反,把你的别名定义成一个单独的文件,说$ HOME/.aliases,并在岩组定义了钩

function precmd { 
    source $HOME/.aliases 
} 

如果以后改变.aliases文件,你仍然要键入一个在您的shell中的回车,以便激发一个新的提示被写入并执行precmd,但这比手动获取文件麻烦。

相关问题