Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Tip of the day: suspend-shell widget



I was rather to surprised to find the following zle widget works
seamlessly (at least with the latest version of zsh), but then I'm a
cynic.  Save it as suspend-shell in your $fpath.

Sample use:

autoload suspend-shell
zle -N suspend-shell
bindkey '^z' suspend-shell

^z now suspends the shell in the middle of the line editor.  When you
bring it back to the foreground, you are exactly where you left off
editing.  Obviously this is useless if the shell is running directly
in a terminal window, but detecting that is quite hard.

Possibly worth adding to Functions/Zle?


# start of suspend-shell
# Suspend the shell in the middle of line editing.
# When you continue, it resumes exactly where you left off.
# Won't suspend a login shell unless you pass a numeric argument.

if (( ${NUMERIC:-0} )); then
  # "builtin" is in case someone decides to call this function suspend
  builtin suspend -f
else
  if [[ -o login ]]; then
    zle -M "Can't suspend login shell (use numeric argument)"
    return 1
  else
    builtin suspend
  fi
fi

zle redisplay
# end of suspend-shell

-- 
Peter Stephenson <pws@xxxxxxx>                  Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK                          Tel: +44 (0)1223 692070


**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.

This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.

www.mimesweeper.com
**********************************************************************



Messages sorted by: Reverse Date, Date, Thread, Author