diff options
Diffstat (limited to '.oh-my-zsh/plugins/zsh_reload')
-rw-r--r-- | .oh-my-zsh/plugins/zsh_reload/README.md | 23 | ||||
-rw-r--r-- | .oh-my-zsh/plugins/zsh_reload/zsh_reload.plugin.zsh | 12 |
2 files changed, 35 insertions, 0 deletions
diff --git a/.oh-my-zsh/plugins/zsh_reload/README.md b/.oh-my-zsh/plugins/zsh_reload/README.md new file mode 100644 index 0000000..d31a827 --- /dev/null +++ b/.oh-my-zsh/plugins/zsh_reload/README.md @@ -0,0 +1,23 @@ +# zsh_reload plugin + +The zsh_reload plugin defines a function to reload the zsh session with +just a few keystrokes. + +To use it, add `zsh_reload` to the plugins array in your zshrc file: + +```zsh +plugins=(... zsh_reload) +``` + +## Usage + +To reload the zsh session, just run `src`: + +```zsh +$ vim ~/.zshrc # enabled a plugin +$ src +re-compiling /home/user/.zshrc.zwc: succeeded +re-compiling /home/user/.oh-my-zsh/cache/zcomp-host.zwc: succeeded + +# you now have a fresh zsh session. happy hacking! +``` diff --git a/.oh-my-zsh/plugins/zsh_reload/zsh_reload.plugin.zsh b/.oh-my-zsh/plugins/zsh_reload/zsh_reload.plugin.zsh new file mode 100644 index 0000000..51048ba --- /dev/null +++ b/.oh-my-zsh/plugins/zsh_reload/zsh_reload.plugin.zsh @@ -0,0 +1,12 @@ +src() { + local cache="$ZSH_CACHE_DIR" + autoload -U compinit zrecompile + compinit -i -d "$cache/zcomp-$HOST" + + for f in ~/.zshrc "$cache/zcomp-$HOST"; do + zrecompile -p $f && command rm -f $f.zwc.old + done + + # Use $SHELL if available; remove leading dash if login shell + [[ -n "$SHELL" ]] && exec ${SHELL#-} || exec zsh +} |