diff --git a/plugins/globalias/README.md b/plugins/globalias/README.md new file mode 100644 index 000000000..ba9888ccb --- /dev/null +++ b/plugins/globalias/README.md @@ -0,0 +1,62 @@ +# Globalias plugin + +Expands all glob expressions, subcommands and aliases (including global). + +Idea from: http://blog.patshead.com/2012/11/automatically-expaning-zsh-global-aliases---simplified.html. + +## Usage + +Add `globalias` to the plugins array in your zshrc file: + +```zsh +plugins=(... globalias) +``` + +Then just press `SPACE` to trigger the expansion of a command you've written. + +If you only want to insert a space without expanding the command line, press +`CTRL`+`SPACE`. + +## Examples + +#### Glob expressions + +``` +$ touch {1..10} +# expands to +$ touch 1 2 3 4 5 6 7 8 9 10 + +$ ls **/*.json +# expands to +$ ls folder/file.json anotherfolder/another.json +``` + +#### Subcommands + +``` +$ mkdir "`date -R`" +# expands to +$ mkdir Tue,\ 04\ Oct\ 2016\ 13:54:03\ +0300 + +``` + +#### Aliases + +``` +# .zshrc: +alias -g G="| grep --color=auto -P" +alias l='ls --color=auto -lah' + +$ lG +# expands to +$ ls --color=auto -lah | grep --color=auto -P +``` + +``` +# .zsrc: +alias S="sudo systemctl" + +$ S +# expands to: +$ sudo systemctl +``` diff --git a/plugins/globalias/globalias.plugin.zsh b/plugins/globalias/globalias.plugin.zsh new file mode 100644 index 000000000..9602a9606 --- /dev/null +++ b/plugins/globalias/globalias.plugin.zsh @@ -0,0 +1,17 @@ +globalias() { + zle _expand_alias + zle expand-word + zle self-insert +} +zle -N globalias + +# space expands all aliases, including global +bindkey -M emacs " " globalias +bindkey -M viins " " globalias + +# control-space to make a normal space +bindkey -M emacs "^ " magic-space +bindkey -M viins "^ " magic-space + +# normal space during searches +bindkey -M isearch " " magic-space