Load this script (require 'scratch-pop) and you can popup a scratch buffer with "M-x scratch-pop". If a scratch is already displayed, new buffers (like =*scratch2*=, =*scratch3*= ...) are created. You may also bind some keys to "scratch-pop" if you want. (global-set-key "C-M-s" 'scratch-pop) You can backup scratches by calling `scratch-pop-backup-scratches' after setting `scratch-pop-backup-directory', (setq scratch-pop-backup-directory "~/.emacs.d/scratch_pop/") (add-hook 'kill-emacs-hook 'scratch-pop-backup-directory) and then restore backups by calling `scratch-pop-restore-scratches'. (scratch-pop-restore-scratches 2) ; restores *scratch* and *scratch2*