mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-02-06 02:51:32 +01:00
merge
This commit is contained in:
parent
a8c56f5231
commit
8274156fae
296 changed files with 6279 additions and 3141 deletions
|
|
@ -26,7 +26,7 @@ These settings should go in your zshrc file, before Oh My Zsh is sourced:
|
|||
#### Lazy startup
|
||||
|
||||
This option will help you to defer nvm's load until you use it to speed-up your zsh startup. This will source
|
||||
nvm script only when using it, and will create a function for `node`, `npm`, `pnpm`, `yarn`, and the
|
||||
nvm script only when using it, and will create a function for `node`, `npm`, `npx`, `pnpm`, `yarn`, and the
|
||||
command(s) specified by `lazy-cmd` option, so when you call either of them, nvm will be loaded and run with
|
||||
default version. To enable it, you can add this snippet to your zshrc, before Oh My Zsh is sourced:
|
||||
|
||||
|
|
@ -43,18 +43,15 @@ zstyle ':omz:plugins:nvm' lazy-cmd eslint prettier typescript ...
|
|||
|
||||
#### `.nvmrc` autoload
|
||||
|
||||
Note: _if used at the same time as `lazy`, `autoload` will start working only after nvm has been lazy-loaded_
|
||||
|
||||
If set, the plugin will automatically load a node version when if finds a
|
||||
[`.nvmrc` file](https://github.com/nvm-sh/nvm#nvmrc) in the current working directory indicating which node
|
||||
version to load. This can be done, similar as previous options, adding:
|
||||
|
||||
```zsh
|
||||
zstyle ':omz:plugins:nvm' autoload yes
|
||||
```
|
||||
|
||||
To remove the output generated by NVM when autoloading, you can set the following option:
|
||||
|
||||
```zsh
|
||||
zstyle ':omz:plugins:nvm' silent-autoload yes
|
||||
zstyle ':omz:plugins:nvm' silent-autoload yes # optionally remove the output generated by NVM when autoloading
|
||||
```
|
||||
|
||||
Note: _this will not remove regular `nvm` output_
|
||||
|
|
|
|||
|
|
@ -1,34 +0,0 @@
|
|||
#compdef nvm
|
||||
#autoload
|
||||
|
||||
[[ -f "$NVM_DIR/nvm.sh" ]] || return 0
|
||||
|
||||
local -a _1st_arguments
|
||||
_1st_arguments=(
|
||||
'help:show help'
|
||||
'--version:print out the latest released version of nvm'
|
||||
'install:download and install a version in <node|iojs|node version number>'
|
||||
'install-latest-npm:download and install the latest npm version'
|
||||
'uninstall:uninstall a version'
|
||||
'use:modify PATH to use <version>. Uses .nvmrc if available'
|
||||
'exec:run <command> on <version>. Uses .nvmrc if available'
|
||||
'run:run `node` on <version> with <args> as arguments. Uses .nvmrc if available'
|
||||
'current:list installed versions'
|
||||
'ls:list installed versions or versions matching a given description'
|
||||
'version:resolve the given description to a single local version'
|
||||
'version-remote:resolve the given description to a single remote version'
|
||||
'ls-remote:list remote versions available for install'
|
||||
'deactivate:undo effects of `nvm` on current shell'
|
||||
'alias:show or set aliases'
|
||||
'unalias:deletes an alias'
|
||||
'reinstall-packages:reinstall global `npm` packages contained in <version> to current version'
|
||||
'unload:unload `nvm` from shell'
|
||||
'which:display path to installed node version. Uses .nvmrc if available'
|
||||
)
|
||||
|
||||
_arguments -C '*:: :->subcmds' && return 0
|
||||
|
||||
if (( CURRENT == 1 )); then
|
||||
_describe -t commands "nvm subcommand" _1st_arguments
|
||||
return
|
||||
fi
|
||||
|
|
@ -1,3 +1,7 @@
|
|||
# Don't try to load nvm if command already available
|
||||
# Note: nvm is a function so we need to use `which`
|
||||
which nvm &>/dev/null && return
|
||||
|
||||
# See https://github.com/nvm-sh/nvm#installation-and-update
|
||||
if [[ -z "$NVM_DIR" ]]; then
|
||||
if [[ -d "$HOME/.nvm" ]]; then
|
||||
|
|
@ -12,57 +16,35 @@ if [[ -z "$NVM_DIR" ]]; then
|
|||
fi
|
||||
fi
|
||||
|
||||
# Don't try to load nvm if command already available
|
||||
# Note: nvm is a function so we need to use `which`
|
||||
which nvm &>/dev/null && return
|
||||
|
||||
# TODO: 2022-11-11: Remove soft-deprecate options
|
||||
if (( ${+NVM_LAZY} + ${+NVM_LAZY_CMD} + ${+NVM_AUTOLOAD} )); then
|
||||
# Get list of NVM_* variable settings defined
|
||||
local -a used_vars
|
||||
used_vars=(${(o)parameters[(I)NVM_(AUTOLOAD|LAZY|LAZY_CMD)]})
|
||||
# Nicely print the list in the style `var1, var2 and var3`
|
||||
echo "${fg[yellow]}[nvm plugin] Variable-style settings are deprecated. Instead of ${(j:, :)used_vars[1,-2]}${used_vars[-2]+ and }${used_vars[-1]}, use:\n"
|
||||
if (( $+NVM_AUTOLOAD )); then
|
||||
echo " zstyle ':omz:plugins:nvm' autoload yes"
|
||||
zstyle ':omz:plugins:nvm' autoload yes
|
||||
fi
|
||||
if (( $+NVM_LAZY )); then
|
||||
echo " zstyle ':omz:plugins:nvm' lazy yes"
|
||||
zstyle ':omz:plugins:nvm' lazy yes
|
||||
fi
|
||||
if (( $+NVM_LAZY_CMD )); then
|
||||
echo " zstyle ':omz:plugins:nvm' lazy-cmd $NVM_LAZY_CMD"
|
||||
zstyle ':omz:plugins:nvm' lazy-cmd $NVM_LAZY_CMD
|
||||
fi
|
||||
echo "$reset_color"
|
||||
unset used_vars NVM_AUTOLOAD NVM_LAZY NVM_LAZY_CMD
|
||||
fi
|
||||
|
||||
if zstyle -t ':omz:plugins:nvm' lazy; then
|
||||
# Call nvm when first using nvm, node, npm, pnpm, yarn or other commands in lazy-cmd
|
||||
zstyle -a ':omz:plugins:nvm' lazy-cmd nvm_lazy_cmd
|
||||
eval "
|
||||
function nvm node npm pnpm yarn $nvm_lazy_cmd {
|
||||
unfunction nvm node npm pnpm yarn $nvm_lazy_cmd
|
||||
# Load nvm if it exists in \$NVM_DIR
|
||||
[[ -f \"\$NVM_DIR/nvm.sh\" ]] && source \"\$NVM_DIR/nvm.sh\"
|
||||
\"\$0\" \"\$@\"
|
||||
}
|
||||
"
|
||||
unset nvm_lazy_cmd
|
||||
elif [[ -f "$NVM_DIR/nvm.sh" ]]; then
|
||||
# Load nvm if it exists in $NVM_DIR
|
||||
source "$NVM_DIR/nvm.sh"
|
||||
else
|
||||
if [[ -z "$NVM_DIR" ]] || [[ ! -f "$NVM_DIR/nvm.sh" ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
# Autoload nvm when finding a .nvmrc file in the current directory
|
||||
# Adapted from: https://github.com/nvm-sh/nvm#zsh
|
||||
if zstyle -t ':omz:plugins:nvm' autoload; then
|
||||
function _omz_load_nvm_completion {
|
||||
local _nvm_completion
|
||||
# Load nvm bash completion
|
||||
for _nvm_completion in "$NVM_DIR/bash_completion" "$NVM_HOMEBREW/etc/bash_completion.d/nvm"; do
|
||||
if [[ -f "$_nvm_completion" ]]; then
|
||||
# Load bashcompinit
|
||||
autoload -U +X bashcompinit && bashcompinit
|
||||
# Bypass compinit call in nvm bash completion script. See:
|
||||
# https://github.com/nvm-sh/nvm/blob/4436638/bash_completion#L86-L93
|
||||
ZSH_VERSION= source "$_nvm_completion"
|
||||
break
|
||||
fi
|
||||
done
|
||||
unfunction _omz_load_nvm_completion
|
||||
}
|
||||
|
||||
function _omz_setup_autoload {
|
||||
if ! zstyle -t ':omz:plugins:nvm' autoload; then
|
||||
unfunction _omz_setup_autoload
|
||||
return
|
||||
fi
|
||||
|
||||
# Autoload nvm when finding a .nvmrc file in the current directory
|
||||
# Adapted from: https://github.com/nvm-sh/nvm#zsh
|
||||
function load-nvmrc {
|
||||
local node_version="$(nvm version)"
|
||||
local nvmrc_path="$(nvm_find_nvmrc)"
|
||||
local nvm_silent=""
|
||||
zstyle -t ':omz:plugins:nvm' silent-autoload && nvm_silent="--silent"
|
||||
|
|
@ -75,10 +57,8 @@ if zstyle -t ':omz:plugins:nvm' autoload; then
|
|||
elif [[ "$nvmrc_node_version" != "$node_version" ]]; then
|
||||
nvm use $nvm_silent
|
||||
fi
|
||||
elif [[ "$node_version" != "$(nvm version default)" ]]; then
|
||||
if [[ -z $nvm_silent ]]; then
|
||||
echo "Reverting to nvm default version"
|
||||
fi
|
||||
elif [[ -n "$(PWD=$OLDPWD nvm_find_nvmrc)" ]] && [[ "$(nvm version)" != "$(nvm version default)" ]]; then
|
||||
[[ -z $nvm_silent ]] && echo "Reverting to nvm default version"
|
||||
|
||||
nvm use default $nvm_silent
|
||||
fi
|
||||
|
|
@ -88,18 +68,30 @@ if zstyle -t ':omz:plugins:nvm' autoload; then
|
|||
add-zsh-hook chpwd load-nvmrc
|
||||
|
||||
load-nvmrc
|
||||
unfunction _omz_setup_autoload
|
||||
}
|
||||
|
||||
if zstyle -t ':omz:plugins:nvm' lazy; then
|
||||
# Call nvm when first using nvm, node, npm, pnpm, yarn or other commands in lazy-cmd
|
||||
zstyle -a ':omz:plugins:nvm' lazy-cmd nvm_lazy_cmd
|
||||
nvm_lazy_cmd=(nvm node npm npx pnpm yarn $nvm_lazy_cmd) # default values
|
||||
eval "
|
||||
function $nvm_lazy_cmd {
|
||||
for func in $nvm_lazy_cmd; do
|
||||
if (( \$+functions[\$func] )); then
|
||||
unfunction \$func
|
||||
fi
|
||||
done
|
||||
# Load nvm if it exists in \$NVM_DIR
|
||||
[[ -f \"\$NVM_DIR/nvm.sh\" ]] && source \"\$NVM_DIR/nvm.sh\"
|
||||
_omz_load_nvm_completion
|
||||
_omz_setup_autoload
|
||||
\"\$0\" \"\$@\"
|
||||
}
|
||||
"
|
||||
unset nvm_lazy_cmd
|
||||
else
|
||||
source "$NVM_DIR/nvm.sh"
|
||||
_omz_load_nvm_completion
|
||||
_omz_setup_autoload
|
||||
fi
|
||||
|
||||
# Load nvm bash completion
|
||||
for nvm_completion in "$NVM_DIR/bash_completion" "$NVM_HOMEBREW/etc/bash_completion.d/nvm"; do
|
||||
if [[ -f "$nvm_completion" ]]; then
|
||||
# Load bashcompinit
|
||||
autoload -U +X bashcompinit && bashcompinit
|
||||
# Bypass compinit call in nvm bash completion script. See:
|
||||
# https://github.com/nvm-sh/nvm/blob/4436638/bash_completion#L86-L93
|
||||
ZSH_VERSION= source "$nvm_completion"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
unset NVM_HOMEBREW nvm_completion
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue