Heavily inspired by this: https://dev.to/frost/fish-style-abbreviations-in-zsh-40aa When space is pushed, zsh will try to expand any aliases that I have put in the array in this file. It is currently quite basic, only looking at the first word on the command line.
parent
e0410e4d5e
commit
e993f2c566
1 changed files with 53 additions and 0 deletions
@ -0,0 +1,53 @@ |
||||
#!/usr/bin/env zsh |
||||
|
||||
# An array of aliases that should be auto-expanded |
||||
typeset -a ealiases |
||||
ealiases=( |
||||
"mkdir" |
||||
"qmv" |
||||
"grep" |
||||
"cal" |
||||
"df" |
||||
"docker" |
||||
"docker-compose" |
||||
"v" |
||||
"vim" |
||||
"status" |
||||
"st" |
||||
"checkout" |
||||
"ch" |
||||
"push" |
||||
"pull" |
||||
"bb" |
||||
"merge" |
||||
"mg" |
||||
"switch" |
||||
"sw" |
||||
) |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# expand any aliases in the current line buffer |
||||
function expand-ealias() { |
||||
if [[ $LBUFFER =~ "\<(${(j:|:)ealiases})\$" ]]; then |
||||
zle _expand_alias |
||||
zle expand-word |
||||
fi |
||||
zle magic-space |
||||
} |
||||
zle -N expand-ealias |
||||
|
||||
# Bind the space key to the expand-alias function above, so that space will expand any expandable aliases |
||||
bindkey ' ' expand-ealias |
||||
bindkey '^ ' magic-space # control-space to bypass completion |
||||
bindkey -M isearch " " magic-space # normal space during searches |
||||
|
||||
# A function for expanding any aliases before accepting the line as is and executing the entered command |
||||
expand-alias-and-accept-line() { |
||||
expand-ealias |
||||
zle .backward-delete-char |
||||
zle .accept-line |
||||
} |
||||
zle -N accept-line expand-alias-and-accept-line |
Loading…
Reference in new issue