
У меня есть репозиторий на github, в котором содержится большинство моих dot-файлов, включая такие файлы, как .zshrc
.
Когда мне нужно перейти на новую среду разработки, мне просто нужно извлечь мои dot-файлы из github и убедиться, что они находятся в правильных местах.
Но иногда новая среда существенно отличается от старой, например, мне может потребоваться перейти с MacOS на какой-либо дистрибутив Linux.
Эти различия могут сделать мои конфигурации неверными, поэтому мне интересно, можно ли перенести все эти зависящие от среды конфигурации .zshrc
и сохранить их в каких-то внешних файлах.
решение1
Вы можете загрузить дополнительные файлы в свой ~/.zshrc
файл с помощью source FILENAME
.
У меня есть следующее, ~/.zshrc
чтобы сделать это для всех файлов с .zsh
расширением~/.zshrc.d
# load additional configuration
if [[ -d ~/.zshrc.d ]]; then
for file in ~/.zshrc.d/*.zsh; do
source "$file"
done
unset file
fi
Затем вы можете просто поместить туда только те файлы, которые вам нужны для конкретной среды.
Вы даже можете пойти дальше и создать подкаталог для каждой среды и загружать только нужную. Например, на основе содержимого $OSTYPE
:
if [[ -d ~/.zshrc.d/${OSTYPE} ]]; then
for file in ~/.zshrc.d/${OSTYPE}/*.zsh; do
source "$file"
done
unset file
fi