为了使我的~成为一个更干净的地方,我想将尽可能多的用户配置文件移到$XDG_CONFIG_HOME中,这在默认情况下是~/.config。因此,我想将我所有的zsh用户文件存储在$XDG_CONFIG_HOME/zsh/中。到目前为止,已经有这样的情况:
% ls $XDG_CONFIG_HOME/zsh/
histfile zsh_cache zshrc简单点,你只需填写你的~/.zshrc。现在,最棘手的部分似乎使zsh直接读取$XDG_CONFIG_HOME/zsh/zshrc,而不从~/.zshrc获取它。你会怎么做?
发布于 2014-01-16 13:42:24
可以编辑/etc/zsh/zshenv来设置$XDG_CONFIG_HOME目录和$ZDOTDIR。但是,这需要对这些文件进行写特权。
因此,如果$HOME是在zsh读取时定义的(我不知道是否如此),您可以将其添加到/etc/zsh/zshenv中
if [[ -z "$XDG_CONFIG_HOME" ]]
then
export XDG_CONFIG_HOME="$HOME/.config/"
fi
if [[ -d "$XDG_CONFIG_HOME/zsh" ]]
then
export ZDOTDIR="$XDG_CONFIG_HOME/zsh/"
fi发布于 2019-12-01 12:53:46
这是一个很好的实践,不要把一个/放在任何保持一定路径的变量的末尾。
例如,$XDG_CONFIG_HOME/zsh转换为"$HOME/.config//zsh"和/重复,因为XDG_CONFIG_HOME以/结尾。
所以我觉得你的答案应该是-
if [[ -z "$XDG_CONFIG_HOME" ]]
then
export XDG_CONFIG_HOME="$HOME/.config"
fi
if [[ -d "$XDG_CONFIG_HOME/zsh" ]]
then
export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
fihttps://stackoverflow.com/questions/21162988
复制相似问题