首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在$XDG_CONFIG_HOME中进行zsh搜索配置

如何在$XDG_CONFIG_HOME中进行zsh搜索配置
EN

Stack Overflow用户
提问于 2014-01-16 13:21:22
回答 4查看 8.3K关注 0票数 11

为了使我的~成为一个更干净的地方,我想将尽可能多的用户配置文件移到$XDG_CONFIG_HOME中,这在默认情况下是~/.config。因此,我想将我所有的zsh用户文件存储在$XDG_CONFIG_HOME/zsh/中。到目前为止,已经有这样的情况:

代码语言:javascript
复制
% ls $XDG_CONFIG_HOME/zsh/
histfile  zsh_cache zshrc

简单点,你只需填写你的~/.zshrc。现在,最棘手的部分似乎使zsh直接读取$XDG_CONFIG_HOME/zsh/zshrc,而不从~/.zshrc获取它。你会怎么做?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-01-16 13:42:24

可以编辑/etc/zsh/zshenv来设置$XDG_CONFIG_HOME目录和$ZDOTDIR。但是,这需要对这些文件进行写特权。

因此,如果$HOME是在zsh读取时定义的(我不知道是否如此),您可以将其添加到/etc/zsh/zshenv

代码语言:javascript
复制
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
票数 11
EN

Stack Overflow用户

发布于 2019-12-01 12:53:46

这是一个很好的实践,不要把一个/放在任何保持一定路径的变量的末尾。

例如,$XDG_CONFIG_HOME/zsh转换为"$HOME/.config//zsh"/重复,因为XDG_CONFIG_HOME/结尾。

所以我觉得你的答案应该是-

代码语言:javascript
复制
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
票数 7
EN

Stack Overflow用户

发布于 2017-10-26 19:31:00

用${HOME}/.zshenv来启动环境的心理分析的变化。不需要根目录访问。

代码语言:javascript
复制
export XDG_CONFIG_HOME=${XDG_CONFIG_HOME:=${HOME}/.config}
export ZDOTDIR=${ZDOTDIR:=${XDG_CONFIG_HOME}/zsh}
source $ZDOTDIR/.zshenv

这在zsh用户邮件列表上的这条线上进行了讨论。

您可能想考虑在XDG_DATA_HOME中保存历史记录。规范可在XDG基础目录规范上找到。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21162988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档