summaryrefslogtreecommitdiffstats
path: root/zsh/oh-my-zsh/plugins/npm
diff options
context:
space:
mode:
authorLibravatarLibravatar Biswakalyan Bhuyan <biswa@surgot.in> 2022-10-03 21:42:20 +0530
committerLibravatarLibravatar Biswakalyan Bhuyan <biswa@surgot.in> 2022-10-03 21:42:20 +0530
commitaf120ab348f2e1a5a39dec035ed9dcf84189a64e (patch)
tree2a3aadd7ce1b7b771dfe3fe7c983569726c8d7ed /zsh/oh-my-zsh/plugins/npm
downloaddotfiles-af120ab348f2e1a5a39dec035ed9dcf84189a64e.tar.gz
dotfiles-af120ab348f2e1a5a39dec035ed9dcf84189a64e.tar.bz2
dotfiles-af120ab348f2e1a5a39dec035ed9dcf84189a64e.zip
dotfiles
Diffstat (limited to 'zsh/oh-my-zsh/plugins/npm')
-rw-r--r--zsh/oh-my-zsh/plugins/npm/README.md48
-rw-r--r--zsh/oh-my-zsh/plugins/npm/npm.plugin.zsh111
2 files changed, 159 insertions, 0 deletions
diff --git a/zsh/oh-my-zsh/plugins/npm/README.md b/zsh/oh-my-zsh/plugins/npm/README.md
new file mode 100644
index 0000000..8eafc6d
--- /dev/null
+++ b/zsh/oh-my-zsh/plugins/npm/README.md
@@ -0,0 +1,48 @@
+# npm plugin
+
+The npm plugin provides completion as well as adding many useful aliases.
+
+To use it, add npm to the plugins array of your zshrc file:
+
+```zsh
+plugins=(... npm)
+```
+
+## Aliases
+
+| Alias | Command | Description |
+|:------ |:-----------------------------|:----------------------------------------------------------------|
+| `npmg` | `npm i -g` | Install dependencies globally |
+| `npmS` | `npm i -S` | Install and save to dependencies in your package.json |
+| `npmD` | `npm i -D` | Install and save to dev-dependencies in your package.json |
+| `npmF` | `npm i -f` | Force install from remote registries ignoring local cache |
+| `npmE` | `PATH="$(npm bin)":"$PATH"` | Run command from node_modules folder based on current directory |
+| `npmO` | `npm outdated` | Check which npm modules are outdated |
+| `npmU` | `npm update` | Update all the packages listed to the latest version |
+| `npmV` | `npm -v` | Check package versions |
+| `npmL` | `npm list` | List installed packages |
+| `npmL0` | `npm ls --depth=0` | List top-level installed packages |
+| `npmst` | `npm start` | Run npm start |
+| `npmt` | `npm test` | Run npm test |
+| `npmR` | `npm run` | Run npm scripts |
+| `npmP` | `npm publish` | Run npm publish |
+| `npmI` | `npm init` | Run npm init |
+| `npmi` | `npm info` | Run npm info |
+| `npmSe` | `npm search` | Run npm search |
+
+## `npm install` / `npm uninstall` toggle
+
+The plugin adds a function that toggles between `npm install` and `npm uninstall` in
+the current command or the last command, for up to 2 previous commands. **The default
+key binding is pressing <kbd>F2</kbd> twice**.
+
+You can change this key binding by adding the following line to your zshrc file:
+
+```zsh
+bindkey -M emacs '<seq>' npm_toggle_install_uninstall
+bindkey -M vicmd '<seq>' npm_toggle_install_uninstall
+bindkey -M viins '<seq>' npm_toggle_install_uninstall
+```
+
+where `<seq>` is a key sequence obtained by running `cat` and pressing the keyboard
+sequence you want.
diff --git a/zsh/oh-my-zsh/plugins/npm/npm.plugin.zsh b/zsh/oh-my-zsh/plugins/npm/npm.plugin.zsh
new file mode 100644
index 0000000..6c768d6
--- /dev/null
+++ b/zsh/oh-my-zsh/plugins/npm/npm.plugin.zsh
@@ -0,0 +1,111 @@
+(( $+commands[npm] )) && {
+ rm -f "${ZSH_CACHE_DIR:-$ZSH/cache}/npm_completion"
+
+ _npm_completion() {
+ local si=$IFS
+ compadd -- $(COMP_CWORD=$((CURRENT-1)) \
+ COMP_LINE=$BUFFER \
+ COMP_POINT=0 \
+ npm completion -- "${words[@]}" \
+ 2>/dev/null)
+ IFS=$si
+ }
+ compdef _npm_completion npm
+}
+
+# Install dependencies globally
+alias npmg="npm i -g "
+
+# npm package names are lowercase
+# Thus, we've used camelCase for the following aliases:
+
+# Install and save to dependencies in your package.json
+# npms is used by https://www.npmjs.com/package/npms
+alias npmS="npm i -S "
+
+# Install and save to dev-dependencies in your package.json
+# npmd is used by https://github.com/dominictarr/npmd
+alias npmD="npm i -D "
+
+# Force npm to fetch remote resources even if a local copy exists on disk.
+alias npmF='npm i -f'
+
+# Execute command from node_modules folder based on current directory
+# i.e npmE gulp
+alias npmE='PATH="$(npm bin)":"$PATH"'
+
+# Check which npm modules are outdated
+alias npmO="npm outdated"
+
+# Update all the packages listed to the latest version
+alias npmU="npm update"
+
+# Check package versions
+alias npmV="npm -v"
+
+# List packages
+alias npmL="npm list"
+
+# List top-level installed packages
+alias npmL0="npm ls --depth=0"
+
+# Run npm start
+alias npmst="npm start"
+
+# Run npm test
+alias npmt="npm test"
+
+# Run npm scripts
+alias npmR="npm run"
+
+# Run npm publish
+alias npmP="npm publish"
+
+# Run npm init
+alias npmI="npm init"
+
+# Run npm info
+alias npmi="npm info"
+
+# Run npm search
+alias npmSe="npm search"
+
+npm_toggle_install_uninstall() {
+ # Look up to the previous 2 history commands
+ local line
+ for line in "$BUFFER" \
+ "${history[$((HISTCMD-1))]}" \
+ "${history[$((HISTCMD-2))]}"
+ do
+ case "$line" in
+ "npm uninstall"*)
+ BUFFER="${line/npm uninstall/npm install}"
+ (( CURSOR = CURSOR + 2 )) # uninstall -> install: 2 chars removed
+ ;;
+ "npm install"*)
+ BUFFER="${line/npm install/npm uninstall}"
+ (( CURSOR = CURSOR + 2 )) # install -> uninstall: 2 chars added
+ ;;
+ "npm un "*)
+ BUFFER="${line/npm un/npm install}"
+ (( CURSOR = CURSOR + 5 )) # un -> install: 5 chars added
+ ;;
+ "npm i "*)
+ BUFFER="${line/npm i/npm uninstall}"
+ (( CURSOR = CURSOR + 8 )) # i -> uninstall: 8 chars added
+ ;;
+ *) continue ;;
+ esac
+ return 0
+ done
+
+ BUFFER="npm install"
+ CURSOR=${#BUFFER}
+}
+
+zle -N npm_toggle_install_uninstall
+
+# Defined shortcut keys: [F2] [F2]
+bindkey -M emacs '^[OQ^[OQ' npm_toggle_install_uninstall
+bindkey -M vicmd '^[OQ^[OQ' npm_toggle_install_uninstall
+bindkey -M viins '^[OQ^[OQ' npm_toggle_install_uninstall