-
-
Save QinMing/364774610afc0e06cc223b467abe83c0 to your computer and use it in GitHub Desktop.
| # Copyright (c) 2016 Ming Qin (覃明) <https://github.com/QinMing> | |
| # Open source under MIT LICENSE. | |
| ZSH_THEME="agnoster" | |
| plugins=(git pip docker django) | |
| # ...... | |
| unsetopt AUTO_CD | |
| alias l='ls -alhtr' | |
| alias upthis='ss u' | |
| alias downthis='ss d' | |
| alias g='git' | |
| alias gs='git status' | |
| alias gl='git l' | |
| alias gd='git diff' | |
| alias gb='git branch' | |
| alias gp='git pull' | |
| alias dcp='docker-compose' | |
| lazy_load() { | |
| # Act as a stub to another shell function/command. When first run, it will load the actual function/command then execute it. | |
| # E.g. This made my zsh load 0.8 seconds faster by loading `nvm` when "nvm", "npm" or "node" is used for the first time | |
| # $1: space separated list of alias to release after the first load | |
| # $2: file to source | |
| # $3: name of the command to run after it's loaded | |
| # $4+: argv to be passed to $3 | |
| echo "Lazy loading $1 ..." | |
| # $1.split(' ') using the s flag. In bash, this can be simply ($1) #http://unix.stackexchange.com/questions/28854/list-elements-with-spaces-in-zsh | |
| # Single line won't work: local names=("${(@s: :)${1}}"). Due to http://stackoverflow.com/questions/14917501/local-arrays-in-zsh (zsh 5.0.8 (x86_64-apple-darwin15.0)) | |
| local -a names | |
| if [[ -n "$ZSH_VERSION" ]]; then | |
| names=("${(@s: :)${1}}") | |
| else | |
| names=($1) | |
| fi | |
| unalias "${names[@]}" | |
| . $2 | |
| shift 2 | |
| $* | |
| } | |
| group_lazy_load() { | |
| local script | |
| script=$1 | |
| shift 1 | |
| for cmd in "$@"; do | |
| alias $cmd="lazy_load \"$*\" $script $cmd" | |
| done | |
| } | |
| export NVM_DIR=~/.nvm | |
| group_lazy_load $HOME/.nvm/nvm.sh nvm node npm | |
| export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting | |
| group_lazy_load $HOME/.rvm/scripts/rvm rvm irb rake rails | |
| unset -f group_lazy_load | |
| alias ve="lazy_load 've' $HOME/git/simple-virtualenv-wrapper/ve.sh ve" | |
| alias makedocker=". '/Applications/Docker/Docker Quickstart Terminal.app/Contents/Resources/Scripts/start.sh'" | |
| #eval "$(docker-machine env default)" |
Thank you for this!
Why i got Unrecognized command line argument: nvm node npm when input nvm each time I open a new window?
but after source ~/.bash_profile everything works fine ~
great!! thank you!
This is great!
Ah, back to my old zsh startup speed, thanks!
awesome!
thanks!
Wow, thank you!!
Works fine but every time I open a new terminal I got this error
/home/usrname/.nvm/nvm.sh:2348: defining function based on alias `nvm'
/home/username/.nvm/nvm.sh:2348: parse error near `()'
and it repeat more than 50 times
my zsh thing used to take around 1.5 seconds not its like 0.4 seconds AWESOME
Works fine but every time I open a new terminal I got this error
/home/usrname/.nvm/nvm.sh:2348: defining function based on alias `nvm' /home/username/.nvm/nvm.sh:2348: parse error near `()'and it repeat more than 50 times
Did you ever get this resolved? Here we are in 2024 and I'm getting this! (NOTE: Mine is "nvm.sh:2833")
Hi @moghaazi and @sethderrick
I couldn't reproduce. I just pulled the latest nvm, and was still able to use this tool as normal.
I'm wondering if the issue you are facing is specific to nvm itself. Are you able to run . $HOME/.nvm/nvm.sh directly?
disclaimer: I haven't used nvm or node.js for years

awesome!!