feat(fancy-ctrl-z): Flip-flop between two backgrounded jobs

Added a feature to `fancy-ctrl-z` which, if and only if there are
precisely two backgrounded jobs, switches between them (using `fg %-`)
when bringing back something to the foreground.
This commit is contained in:
Whisperity 2025-04-01 12:08:51 +02:00
commit 6f7a50dca8
2 changed files with 16 additions and 8 deletions

View file

@ -1,12 +1,18 @@
fancy-ctrl-z () {
if [[ $#BUFFER -eq 0 ]]; then
BUFFER="fg"
IFS=$'\n' local num_jobs=($(jobs))
if [[ "${#num_jobs[@]}" -eq 2 ]]; then
BUFFER="fg %-"
fi
zle accept-line -w
else
zle push-input -w
zle clear-screen -w
fi
}
zle -N fancy-ctrl-z
bindkey '^Z' fancy-ctrl-z