bash completion
parent
6e50bc0d78
commit
cfa81b49d1
|
@ -44,6 +44,40 @@ To set a default Node version to be used in any new shell, use the alias 'defaul
|
||||||
|
|
||||||
nvm alias default 0.6
|
nvm alias default 0.6
|
||||||
|
|
||||||
|
## Bash completion
|
||||||
|
|
||||||
|
To activate, you need to source `bash_completion`:
|
||||||
|
|
||||||
|
[[ -r $NVM_DIR/bash_completion ]] && . $NVM_DIR/bash_completion
|
||||||
|
|
||||||
|
Put the above sourcing line just below the sourcing line for NVM in your profile (`.bashrc`, `.bash_profile`).
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
|
||||||
|
nvm
|
||||||
|
|
||||||
|
$ nvm [tab][tab]
|
||||||
|
alias copy-packages help list run uninstall version
|
||||||
|
clear-cache deactivate install ls unalias use
|
||||||
|
|
||||||
|
nvm alias
|
||||||
|
|
||||||
|
$ nvm alias [tab][tab]
|
||||||
|
default
|
||||||
|
|
||||||
|
$ nvm alias my_alias [tab][tab]
|
||||||
|
v0.4.11 v0.4.12 v0.6.14
|
||||||
|
|
||||||
|
nvm use
|
||||||
|
|
||||||
|
$ nvm use [tab][tab]
|
||||||
|
my_alias default v0.4.11 v0.4.12 v0.6.14
|
||||||
|
|
||||||
|
nvm uninstall
|
||||||
|
|
||||||
|
$ nvm uninstall [tab][tab]
|
||||||
|
my_alias default v0.4.11 v0.4.12 v0.6.14
|
||||||
|
|
||||||
## Problems
|
## Problems
|
||||||
|
|
||||||
If you try to install a node version and the installation fails, be sure to delete the node downloads from src (~/nvm/src/) or you might get an error when trying to reinstall them again or you might get an error like the following:
|
If you try to install a node version and the installation fails, be sure to delete the node downloads from src (~/nvm/src/) or you might get an error when trying to reinstall them again or you might get an error like the following:
|
||||||
|
|
|
@ -0,0 +1,82 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# bash completion for Node Version Manager (NVM)
|
||||||
|
|
||||||
|
__nvm_generate_completion()
|
||||||
|
{
|
||||||
|
declare current_word
|
||||||
|
current_word="${COMP_WORDS[COMP_CWORD]}"
|
||||||
|
COMPREPLY=($(compgen -W "$1" -- "$current_word"))
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
__nvm_commands ()
|
||||||
|
{
|
||||||
|
declare current_word
|
||||||
|
declare command
|
||||||
|
|
||||||
|
current_word="${COMP_WORDS[COMP_CWORD]}"
|
||||||
|
|
||||||
|
COMMANDS='\
|
||||||
|
help install uninstall use\
|
||||||
|
run ls list deactivate alias\
|
||||||
|
unalias copy-packages clear-cache version'
|
||||||
|
|
||||||
|
if [ ${#COMP_WORDS[@]} == 4 ]; then
|
||||||
|
|
||||||
|
command="${COMP_WORDS[COMP_CWORD-2]}"
|
||||||
|
case "${command}" in
|
||||||
|
alias) __nvm_installed_nodes ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
case "${current_word}" in
|
||||||
|
-*) __nvm_options ;;
|
||||||
|
*) __nvm_generate_completion "$COMMANDS" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
__nvm_options ()
|
||||||
|
{
|
||||||
|
OPTIONS=''
|
||||||
|
__nvm_generate_completion "$OPTIONS"
|
||||||
|
}
|
||||||
|
|
||||||
|
__nvm_installed_nodes ()
|
||||||
|
{
|
||||||
|
__nvm_generate_completion "$(nvm_ls) $(__nvm_aliases)"
|
||||||
|
}
|
||||||
|
|
||||||
|
__nvm_aliases ()
|
||||||
|
{
|
||||||
|
declare aliases
|
||||||
|
aliases=""
|
||||||
|
if [ -d $NVM_DIR/alias ]; then
|
||||||
|
aliases="`cd $NVM_DIR/alias && ls`"
|
||||||
|
fi
|
||||||
|
echo "${aliases}"
|
||||||
|
}
|
||||||
|
|
||||||
|
__nvm_alias ()
|
||||||
|
{
|
||||||
|
__nvm_generate_completion "$(__nvm_aliases)"
|
||||||
|
}
|
||||||
|
|
||||||
|
__nvm ()
|
||||||
|
{
|
||||||
|
declare previous_word
|
||||||
|
previous_word="${COMP_WORDS[COMP_CWORD-1]}"
|
||||||
|
|
||||||
|
case "$previous_word" in
|
||||||
|
use|run|ls|list|uninstall) __nvm_installed_nodes ;;
|
||||||
|
alias|unalias) __nvm_alias ;;
|
||||||
|
*) __nvm_commands ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
complete -o default -o nospace -F __nvm nvm
|
Loading…
Reference in New Issue