How to specify a custom path for my .zshrc file?

无人久伴 提交于 2019-12-01 18:11:46

You can symlink:

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

For the zshrc you can do something like:

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

One alternative to a symlink is to put this in ~/.zshenv:

ZDOTDIR=~/.dotfiles

If you want .zshenv in ~/.dotfiles as well, you can look into setting ZDOTDIR in one of the global configuration files (/etc/zshenv is a good choice).

Alternatively, you can do what I do and use GNU Stow. I've got my dotfiles in a repository, one subdirectory per category, like so:

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

then I can cd into repo and do stow zsh and it'll create a symlink from ~/.zshrc to repo/zsh/.zshrc, another from zsh/.zlogin to ~/.zlogin. stow vim to create symlinks from the vim subdirectory to ~, etc.

I've got a script, install-linkfarm, that does all the stow commands so when I move onto a new machine, I clone my repo, cd to it and run install-linkfarm and am good to go.

You can put this in ~/.zshrc, even as its entire contents:

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

Here is an interesting hack that doesn't require you to use sym-links. In your .xsession, (or .*wmrc) have the following:

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

instead of just:

xterm
Make sure to put the -e at the end after all of your other xterm options.
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!