mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-12 21:39:48 +01:00
feat(cli)!: add omz reload
command and deprecate zsh_reload
plugin (#9078)
BREAKING CHANGE: the `zsh_reload` plugin is deprecated. Instead of using its `src` function, use `omz reload` or `exec zsh` to reload zsh after making changes to your `.zshrc` file. Closes #9078
This commit is contained in:
parent
56ab66b194
commit
be4a952972
3 changed files with 18 additions and 41 deletions
12
lib/cli.zsh
12
lib/cli.zsh
|
@ -26,6 +26,7 @@ function _omz {
|
||||||
'help:Usage information'
|
'help:Usage information'
|
||||||
'plugin:Manage plugins'
|
'plugin:Manage plugins'
|
||||||
'pr:Manage Oh My Zsh Pull Requests'
|
'pr:Manage Oh My Zsh Pull Requests'
|
||||||
|
'reload:Reload the current zsh session'
|
||||||
'theme:Manage themes'
|
'theme:Manage themes'
|
||||||
'update:Update Oh My Zsh'
|
'update:Update Oh My Zsh'
|
||||||
)
|
)
|
||||||
|
@ -159,6 +160,7 @@ Available commands:
|
||||||
changelog Print the changelog
|
changelog Print the changelog
|
||||||
plugin <command> Manage plugins
|
plugin <command> Manage plugins
|
||||||
pr <command> Manage Oh My Zsh Pull Requests
|
pr <command> Manage Oh My Zsh Pull Requests
|
||||||
|
reload Reload the current zsh session
|
||||||
theme <command> Manage themes
|
theme <command> Manage themes
|
||||||
update Update Oh My Zsh
|
update Update Oh My Zsh
|
||||||
|
|
||||||
|
@ -598,6 +600,16 @@ function _omz::pr::test {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function _omz::reload {
|
||||||
|
# Delete current completion cache
|
||||||
|
command rm -f $_comp_dumpfile $ZSH_COMPDUMP
|
||||||
|
|
||||||
|
# Old zsh versions don't have ZSH_ARGZERO
|
||||||
|
local zsh="${ZSH_ARGZERO:-${functrace[-1]%:*}}"
|
||||||
|
# Check whether to run a login shell
|
||||||
|
[[ "$zsh" = -* || -o login ]] && exec -l "${zsh#-}" || exec "$zsh"
|
||||||
|
}
|
||||||
|
|
||||||
function _omz::theme {
|
function _omz::theme {
|
||||||
(( $# > 0 && $+functions[_omz::theme::$1] )) || {
|
(( $# > 0 && $+functions[_omz::theme::$1] )) || {
|
||||||
cat >&2 <<EOF
|
cat >&2 <<EOF
|
||||||
|
|
|
@ -1,23 +1,3 @@
|
||||||
# zsh_reload plugin
|
# zsh_reload plugin
|
||||||
|
|
||||||
The zsh_reload plugin defines a function to reload the zsh session with
|
**This plugin is deprecated.** Use `omz reload` or `exec zsh` instead.
|
||||||
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!
|
|
||||||
```
|
|
||||||
|
|
|
@ -1,22 +1,7 @@
|
||||||
|
print ${(%):-"%F{yellow}The \`zsh_reload\` plugin is deprecated and will be removed."}
|
||||||
|
print ${(%):-"Use \`%Bomz reload%b\` or \`%Bexec zsh%b\` instead.%f"}
|
||||||
|
|
||||||
src() {
|
src() {
|
||||||
local cache="$ZSH_CACHE_DIR"
|
print ${(%):-"%F{yellow}$0 is deprecated. Use \`%Bomz reload%b\` or \`%Bexec zsh%b\` instead.%f\n"}
|
||||||
autoload -U compinit zrecompile
|
omz reload
|
||||||
compinit -i -d "$cache/zcomp-$HOST"
|
|
||||||
|
|
||||||
for f in ${ZDOTDIR:-~}/.zshrc "$cache/zcomp-$HOST"; do
|
|
||||||
zrecompile -p $f && command rm -f $f.zwc.old
|
|
||||||
done
|
|
||||||
|
|
||||||
# Use $SHELL if it's available and a zsh shell
|
|
||||||
local shell="$ZSH_ARGZERO"
|
|
||||||
if [[ "${${SHELL:t}#-}" = zsh ]]; then
|
|
||||||
shell="$SHELL"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove leading dash if login shell and run accordingly
|
|
||||||
if [[ "${shell:0:1}" = "-" ]]; then
|
|
||||||
exec -l "${shell#-}"
|
|
||||||
else
|
|
||||||
exec "$shell"
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue