aboutsummaryrefslogtreecommitdiff
path: root/.oh-my-zsh/plugins/zsh_reload
diff options
context:
space:
mode:
Diffstat (limited to '.oh-my-zsh/plugins/zsh_reload')
-rw-r--r--.oh-my-zsh/plugins/zsh_reload/README.md23
-rw-r--r--.oh-my-zsh/plugins/zsh_reload/zsh_reload.plugin.zsh12
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
+}