【问题标题】:How to specify a custom path for my .zshrc file?如何为我的 .zshrc 文件指定自定义路径?
【发布时间】:2014-12-26 15:50:13
【问题描述】:

我正在尝试将 .zshrc 移动到一个文件夹,在该文件夹中我将此类文件与 Github 保持同步。

但现在每当我启动 zsh 会话时,它都不会使用该配置文件。

假设我将文件更改为 ~/.dotfiles 如何将 ~/.dotfiles/.zshrc 添加到 PATH(?!) 以使 zsh 以该配置启动?

执行 source ~./dotfiles/.zshrc 仅适用于该会话。如果我关闭终端,它将不再工作。

【问题讨论】:

    标签: zsh


    【解决方案1】:

    你可以symlink:

    ln -s /path/to/original /path/to/symlink
    

    对于zshrc,您可以执行以下操作:

    ln -s ~/.dotiles/.zshrc ~/.zshrc
    

    【讨论】:

    • 我试过这个,但我的命令有错误。谢谢。这正是我想要的!
    • 我建议--> ln -s ~/.dotiles/zshrc ~/.zshrc 也就是里面的zshrc和.dotfiles不要隐藏
    【解决方案2】:

    或者,您可以像我一样使用 GNU Stow。我的 dotfiles 在存储库中,每个类别有一个子目录,如下所示:

    dotfilerepo/zsh/.zshrc
    dotfilerepo/zsh/.zlogin
    dotfilerepo/git/.gitconfig
    dotfilerepo/vim/.vimrc
    

    然后我可以 cd 进入 repo 并执行 stow zsh,它会创建一个从 ~/.zshrc 到 repo/zsh/.zshrc 的符号链接,另一个从 zsh/.zlogin 到 ~/.zlogin。 stow vim 创建从 vim 子目录到 ~ 等的符号链接。

    我有一个脚本 install-linkfarm,它执行所有 stow 命令,所以当我移到新机器上时,我克隆我的 repo,cd 到它并运行 install-linkfarm,一切顺利。

    【讨论】:

    • 这很有趣。我试试看
    • 这比手动运行ln -s .foo ~/.foo 要少得多。我也喜欢将点文件分隔到它们自己的子目录中。
    【解决方案3】:

    符号链接的一种替代方法是将其放入~/.zshenv

    ZDOTDIR=~/.dotfiles
    

    如果您还想在~/.dotfiles 中设置.zshenv,您可以查看在其中一个全局配置文件中设置ZDOTDIR/etc/zshenv 是一个不错的选择)。

    【讨论】:

    • 感谢您的回答,但我会坚持使用@nash_ag 替代方案。
    • 我也愿意 :) 只是想阐明ZDOTDIR 的用法。
    【解决方案4】:

    请使用下面提到的export 命令来解决您的问题。

    export ZDOTDIR=$HOME/.dotfiles
    

    【讨论】:

    • 你把这个放在哪里?在什么文件中?
    【解决方案5】:

    您可以将其放入~/.zshrc,甚至作为其全部内容:

    if [ -r ~/.dotfiles/.zshrc ]; then
        source ~/.dotfiles/.zshrc
    fi
    

    【讨论】:

      【解决方案6】:

      在 Linux 中,您可以检查您的 zsh 是否正在加载 /etc/zsh/zshrc,并对其进行编辑。

      如果是这种情况,请将其重定向到您的自定义脚本,方法是添加:

      sh $HOME/.dotfiles/zshrc
      

      【讨论】:

        【解决方案7】:

        这是一个有趣的 hack,它不需要您使用符号链接。 在您的 .xsession 中,(或 .*wmrc)有以下内容:

        xterm -e 'zsh -c ".~/.dotfiles/.zshrc; zsh"'.

        而不仅仅是:

        xterm 确保将 -e 放在所有其他 xterm 选项之后。

        【讨论】:

          猜你喜欢
          • 2017-01-10
          • 2019-08-22
          • 1970-01-01
          • 1970-01-01
          • 2017-06-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-09
          相关资源
          最近更新 更多