From 1d9ee917c5d725adc7f81d1feaec131b6ac1b703 Mon Sep 17 00:00:00 2001 From: Anthony DiGirolamo Date: Wed, 17 Oct 2012 12:21:27 -0400 Subject: [PATCH] Allow custom/*.zsh configs to override lib/*.zsh files of the same name. This lets you replace default oh-my-zsh behavior with settings more to your liking. You can still add on to default oh-my-zsh settings by adding them to ~/.zshrc or directly to the lib/*.zsh files. --- oh-my-zsh.sh | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index ddef1ad6c..fcfce74eb 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -9,9 +9,16 @@ fi # add a function path fpath=($ZSH/functions $ZSH/completions $fpath) -# Load all of the config files in ~/oh-my-zsh that end in .zsh -# TIP: Add files you don't want in git to .gitignore -for config_file ($ZSH/lib/*.zsh) source $config_file +# Load all library config files in the lib/ folder. If a config file with the +# same name exists under custom/ load that instead. This allows you to override +# default behaviors +for library ($ZSH/lib/*.zsh); do + if [ -f $ZSH/custom/$library:t ]; then + source $ZSH/custom/$library:t + elif [ -f $library ]; then + source $library + fi +done # Set ZSH_CUSTOM to the path where your custom config files # and plugins exists, or else we will use the default custom/ @@ -50,9 +57,6 @@ for plugin ($plugins); do fi done -# Load all of your custom configurations from custom/ -for config_file ($ZSH_CUSTOM/*.zsh(N)) source $config_file - # Load the theme if [ "$ZSH_THEME" = "random" ] then