;;; -*- lexical-binding: t -*- ;; ;; this file: ;; https://dataswamp.org/~incal/emacs-init/erc/erc-kill.el (require 'cl-lib) (require 'erc) (defun erc-kill () (interactive) (dolist (_ (erc-buffer-list)) (erc-cmd-PART "") )) (defun erc-kill-buffer-cycle () (let ((erc-bufs (erc-buffer-list))) (if (= 1 (length erc-bufs)) (kill-buffer) (let ((current-buf (current-buffer))) (cl-loop for b in erc-bufs when (not (eq b current-buf)) do (kill-buffer) (switch-to-buffer b) (cl-return) ))))) (defun erc-kill-buffer-stay () "Close the current ERC buffer but stay in ERC." (interactive) (when (or (not (erc-server-process-alive)) (= ?y (read-char "y to leave"))) (erc-kill-buffer-cycle) )) (provide 'erc-kill)