mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2025-08-13 16:47:21 +02:00
feat(npm): toggle npm install
/ npm uninstall
by pressing F2 twice (#9717)
Co-authored-by: Marc Cornellà <hello@mcornella.com>
This commit is contained in:
@ -69,3 +69,43 @@ 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
|
||||
|
Reference in New Issue
Block a user