Как указать собственный путь для моего файла .zshrc?

Я пытаюсь переместить .zshrc в папку, где я храню такие файлы, синхронизированные с Github.

Но теперь, когда я запускаю сеанс zsh, он не использует этот файл конфигурации.

Предполагая, что я изменил файл на ~/.dotfiles, как я могу добавить ~/.dotfiles/.zshrc в PATH(?!), чтобы zsh запускался с этой конфигурацией?

Исходный файл ~./dotfiles/.zshrc работает только для этого сеанса. Больше не работает, если я закрою терминал.


zsh
person Cândido Faísca    schedule 26.12.2014    source источник


Ответы (6)


Вы можете symlink:

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

Для zshrc вы можете сделать что-то вроде:

ln -s ~/.dotiles/.zshrc ~/.zshrc
person nitishagar    schedule 26.12.2014
comment
Я пробовал это, но у меня была ошибка в команде. Спасибо. Это именно то, что я искал! - person Cândido Faísca; 26.12.2014
comment
Я предлагаю --› ln -s ~/.dotiles/zshrc ~/.zshrc то есть zshrc внутри и .dotfiles не нужно скрывать - person SergioAraujo; 27.12.2014

Одна из альтернатив символической ссылке — поместить это в ~/.zshenv:

ZDOTDIR=~/.dotfiles

Если вы хотите, чтобы .zshenv было и в ~/.dotfiles, вы можете посмотреть настройку ZDOTDIR в одном из глобальных файлов конфигурации (хорошим выбором будет /etc/zshenv).

person chepner    schedule 26.12.2014
comment
Спасибо за ответ, но я буду придерживаться альтернативы @nash_ag. - person Cândido Faísca; 26.12.2014
comment
Я бы тоже :) Просто хотел пролить свет на использование ZDOTDIR. - person chepner; 26.12.2014

В качестве альтернативы вы можете делать то же, что и я, и использовать GNU Stow. У меня есть мои dotfiles в репозитории, по одному подкаталогу на категорию, например:

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

затем я могу перейти в репозиторий и выполнить stow zsh, и он создаст символическую ссылку из ~/.zshrc в репо/zsh/.zshrc, другую из zsh/.zlogin в ~/.zlogin. stow vim для создания символических ссылок из подкаталога vim в ~ и т. д.

У меня есть скрипт install-linkfarm, который выполняет все команды stow, поэтому, когда я перехожу на новую машину, я клонирую свой репозиторий, подключаюсь к нему и запускаю install-linkfarm, и все готово.

person Joe Block    schedule 31.12.2014
comment
это интересно. я попробую - person Cândido Faísca; 31.12.2014
comment
Это намного проще, чем запуск ln -s .foo ~/.foo вручную. Мне также нравится, когда файлы точек разделены на собственные подкаталоги. - person Joe Block; 31.12.2014

Пожалуйста, используйте команду export, указанную ниже, чтобы решить вашу проблему.

export ZDOTDIR=$HOME/.dotfiles
person bigxia    schedule 11.12.2019
comment
Где вы размещаете это? В каком файле? - person Akharrou; 28.06.2021

Вы можете поместить это в ~/.zshrc, даже как все его содержимое:

if [ -r ~/.dotfiles/.zshrc ]; then
    source ~/.dotfiles/.zshrc
fi
person Cliff P    schedule 06.09.2019

В Linux вы можете проверить, загружает ли ваш zsh файл /etc/zsh/zshrc, и отредактировать его.

Если это так, перенаправьте это в свой пользовательский скрипт, добавив:

sh $HOME/.dotfiles/zshrc
person Caleb Santos    schedule 07.08.2020