Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defvar current-group nil)
- (defvar groups ())
- (defvar buffer-list-snapshot (buffer-list))
- (defun switch-group (group)
- (interactive (list (completing-read "Group: " (mapcar #'car groups))))
- (setq current-group group))
- (defun create-group (group)
- (interactive "sName: ")
- (if (assoc group groups)
- (error "Group already exists.")
- (switch-group group)
- (push (list group) groups)))
- (defun group-new-buffers ()
- (when (assoc current-group groups)
- (dolist (buffer (set-difference (buffer-list) buffer-list-snapshot))
- (push buffer (cdr (assoc current-group groups)))))
- (setq buffer-list-snapshot (buffer-list)))
- (add-hook 'buffer-list-update-hook #'group-new-buffers)
- (defun kill-group (group)
- (interactive (list (completing-read "Group: " (mapcar #'car groups))))
- (mapc #'kill-buffer (cdr (assoc group groups)))
- (setq groups (remove* group groups :test #'equal :key #'car)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement