;; This file: http://user.it.uu.se/~embe8573/conf/emacs-init/erc-my.el (require 'erc) (require 'erc-dcc) (require 'super) ;; connect (setq erc-server "irc.freenode.net") (setq erc-port 6667) ;; user (setq erc-nick user-login-name) (setq erc-user-full-name user-login-name) ;; join (setq erc-autojoin-channels-alist `(,`(,(cadr (split-string erc-server "\\.")) "#mcmanny"))) (defun erc-next-buffer () "Iterate to the next ERC buffer, if available." (interactive) (let*((erc-buffers (erc-buffer-list)) (current (car erc-buffers)) (next (cadr erc-buffers)) ) (bury-buffer current) (if next (switch-to-buffer next) (message "No other IRC buffer!") ))) (defun irc () "Go to an IRC buffer if available, otherwise start ERC." (interactive) (let((irc-buffer (car (erc-buffer-list)))) (if irc-buffer (switch-to-buffer irc-buffer) (erc) ))) (defun neq (a b) (not (eq a b) )) (defun erc-kill-buffer-stay () "Close the current ERC buffer (e.g., to leave a channel) but stay in ERC if possible." (interactive) (cl-loop for b in (erc-buffer-list) when (neq b (current-buffer)) do (erc-cmd-LEAVE "") (switch-to-buffer b) (cl-return) )) ;; (setq erc-mode-hook nil) (defun erc-mode-hook-f () (visual-line-mode) (abbrev-mode) (let ((the-map erc-mode-map)) (disable-super-global-keys the-map) (define-key the-map "\C-\M-p" #'erc-previous-command) (define-key the-map "\C-\M-n" #'erc-next-buffer) (define-key the-map "\M-q" #'erc-kill-buffer-stay) (define-key the-map "\C-xk" #'erc-kill-buffer-stay) )) (add-hook 'erc-mode-hook #'erc-mode-hook-f) ;; kill out-of-action buffers (setq erc-kill-server-buffer-on-quit t) (setq erc-kill-buffer-on-part t) ;; looks (setq erc-header-line-face-method t) (setq erc-header-line-format "%o") (setq erc-mode-line-format "%n %s:%p (%m)") (setq erc-mode-line-away-status-format "ERC (away)") (setq erc-prompt "$") ;; misc (setq erc-public-away-p t) (setq erc-hide-list '("QUIT" "JOIN" "KICK" "NICK" "MODE")) (erc-scrolltobottom-enable) ;; timestamp (setq erc-timestamp-intangible t) (setq erc-timestamp-format nil) (setq erc-timestamp-format-left nil) (setq erc-timestamp-format-right nil)