Adds auto-expand to some of my aliases
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.
This commit is contained in:
parent
199eae9ebb
commit
2e38dbc611
1 changed files with 53 additions and 0 deletions
53
shells/zsh/includes/auto-expand.zsh
Normal file
53
shells/zsh/includes/auto-expand.zsh
Normal file
|
@ -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…
Add table
Add a link
Reference in a new issue