summaryrefslogtreecommitdiff
path: root/plugins/globalias
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/globalias')
-rw-r--r--plugins/globalias/README.md19
-rw-r--r--plugins/globalias/globalias.plugin.zsh10
2 files changed, 26 insertions, 3 deletions
diff --git a/plugins/globalias/README.md b/plugins/globalias/README.md
index 0b064105d..cd7fc3cb2 100644
--- a/plugins/globalias/README.md
+++ b/plugins/globalias/README.md
@@ -17,6 +17,9 @@ 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`.
+if you would like to filter out any values from expanding set `GLOBALIAS_FILTER_VALUES` to
+an array of said values. See [Filtered values](#filtered-values).
+
## Examples
#### Glob expressions
@@ -37,7 +40,6 @@ $ ls folder/file.json anotherfolder/another.json
$ mkdir "`date -R`"
# expands to
$ mkdir Tue,\ 04\ Oct\ 2016\ 13:54:03\ +0300
-
```
#### Aliases
@@ -60,3 +62,18 @@ $ S<space>
# expands to:
$ sudo systemctl
```
+
+#### Filtered values
+
+```
+# .zshrc
+alias l='ls -lh'
+alias la='ls --color=auto -lah'
+GLOBALIAS_FILTER_VALUES=(l)
+
+$ l<space>
+# does not expand
+$ la<space>
+# expands to:
+$ ls --color=auto -lah
+```
diff --git a/plugins/globalias/globalias.plugin.zsh b/plugins/globalias/globalias.plugin.zsh
index 9602a9606..bd27d589d 100644
--- a/plugins/globalias/globalias.plugin.zsh
+++ b/plugins/globalias/globalias.plugin.zsh
@@ -1,6 +1,12 @@
globalias() {
- zle _expand_alias
- zle expand-word
+ # Get last word to the left of the cursor:
+ # (z) splits into words using shell parsing
+ # (A) makes it an array even if there's only one element
+ local word=${${(Az)LBUFFER}[-1]}
+ if [[ $GLOBALIAS_FILTER_VALUES[(Ie)$word] -eq 0 ]]; then
+ zle _expand_alias
+ zle expand-word
+ fi
zle self-insert
}
zle -N globalias