Last active
August 29, 2015 13:58
-
-
Save ajchemist/9931916 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;;;; erc4klisper.el starts here | |
;;; Usage: | |
;;; 1. append this code to ~/.emacs | |
;;; 2. locate this file to your custom `load-path', | |
;;; and adding to ~/.emacs | |
;;; | |
;;; (require 'erc4klisper) | |
;;; | |
;;; or | |
;;; | |
;;; (autoload 'erc-connect-ozinger "erc4klisper") | |
;;; | |
(require 'erc) | |
(erc-timestamp-mode 1) | |
(erc-match-mode 1) ;Notify me if someone calls me | |
(erc-services-mode 1) ;autoload erc-services.el | |
(setq erc-prompt-for-nickserv-password nil) | |
(add-to-list 'erc-networks-alist '(Ozinger "ozinger.org")) | |
(add-to-list 'erc-nickserv-alist | |
'(Ozinger "오징오징어!NickServ@services.ozinger.org" | |
"이\\s-대화명은\\s-등록되어\\s-있습니다.\\s-다른\\s-대화명을\\s-선택하거나," | |
"오징오징어" "identify" nil nil | |
"\\s-대화명의\\s-주인으로\\s-확인되었습니다.")) | |
(add-hook 'erc-after-connect | |
#'(lambda (server nick) | |
(erc-server-send (mapconcat #'identity `("MODE" ,nick "x") " ")))) | |
(add-hook 'erc-nickserv-identified-hook | |
#'(lambda (network nick) | |
(erc-autojoin-channels erc-session-server nick))) | |
(erc-autojoin-mode 0) ;autoload erc-join.el | |
(setq erc-autojoin-timing 'ident | |
erc-autojoin-delay 10) | |
(setq erc-autojoin-channels-alist | |
'(("ozinger.org" "#lisp"))) | |
(setq erc-server-auto-reconnect t | |
erc-server-reconnect-timeout 20 | |
erc-server-reconnect-attempts 3) | |
(defun erc-cmd-ELISP (&rest form) | |
"Eval FORM and send the result and the original form as: | |
FORM => (eval FORM)." | |
(let ((string | |
(with-temp-buffer | |
(mapc #'(lambda (f) (insert f " ")) form) | |
(goto-char (point-min)) | |
(setq form (read (current-buffer))) | |
(let ((res (condition-case err | |
(eval form) | |
(error | |
(format "Error: %s" err))))) | |
(insert (format " => %s" res))) | |
(buffer-substring-no-properties | |
(point-min) (1- (point-max)))))) | |
(erc-send-message string))) | |
(add-to-list 'erc-noncommands-list 'erc-cmd-ELISP) | |
(add-hook 'erc-kick-hook #'auto-rejoin) | |
(defun auto-rejoin (buffer) | |
(let ((bn (buffer-name buffer))) | |
(run-at-time "0.1 sec" nil (lambda (bn) | |
(set-buffer bn) | |
(erc-join-channel bn)) bn))) | |
;; erc-log.el `erc-generate-log-file-name-network' | |
(defun erc-generate-log-file-name-network-month (buffer target nick server port) | |
"Generates a log-file name using the network name rather than server name. | |
This results in a file name of the form #channel@network-%Y-%m.log. | |
This function is a possible value for `erc-generate-log-file-name-function'." | |
(let ((file (concat (when target target) | |
"@" | |
(or (with-current-buffer buffer (erc-network-name)) server) | |
"-" | |
(format-time-string "%Y-%m") | |
".log"))) | |
;; we need a make-safe-file-name function. | |
(convert-standard-filename file))) | |
(defun erc-save-all-server-buffer-in-logs () | |
(interactive) | |
(mapc #'erc-save-buffer-in-logs (erc-channel-list erc-server-process))) | |
(erc-log-mode 0) ;autoload erc-log.el | |
(setq erc-generate-log-file-name-function 'erc-generate-log-file-name-network-month | |
erc-log-channels-directory "/var/log/erc" | |
erc-log-matches-flag t | |
erc-save-buffer-on-part t | |
erc-save-queries-on-quit t | |
erc-log-write-after-send nil | |
erc-log-write-after-insert nil | |
erc-log-file-coding-system 'utf-8-unix) | |
(let ((logging nil)) | |
(defun erc-logging-toggle () | |
(setq logging (not logging)) | |
(if logging | |
(progn | |
(add-to-list 'erc-modules 'log) | |
(erc-log-enable)) | |
(setq erc-modules (remq 'log erc-modules)) | |
(erc-log-disable)))) | |
(when (file-readable-p (expand-file-name "__LOG__" erc-log-channels-directory)) | |
(erc-logging-toggle)) | |
;;; ------------------------------------------------------------- | |
;;; please custom below | |
;;; | |
(setq erc-nickserv-passwords | |
'((Ozinger (("IRC-NICK" . "PASSWD"))))) | |
;;;###autoload | |
(defun erc-connect-ozinger () | |
"connect to Ozinger IRC server" | |
(interactive) | |
(erc :server "irc.ozinger.org" | |
:port 6669 | |
:nick "IRC-NICK")) | |
;;;###autoload | |
(defun erc-connect-ozinger-encrypt () | |
"connect to Ozinger IRC server" | |
(interactive) | |
(erc-tls :server "ssl.ozinger.org" | |
:port 16667 | |
:nick "IRC-NICK")) | |
(when (featurep 'erc) | |
(setq erc-anonymous-login t | |
erc-max-buffer-size 9999 | |
erc-echo-notices-in-minibuffer-flag t | |
erc-send-whitespace-lines nil | |
erc-ignore-list nil | |
erc-interpret-mirc-color nil | |
erc-kill-buffer-on-part t | |
erc-kill-queries-on-quit t | |
erc-kill-server-buffer-on-quit nil | |
erc-fill-column 81)) | |
(provide 'erc4klisper) | |
;;; Local Variables: | |
;;; lexical-binding: t | |
;;; End: | |
;;;; erc4klisper.el ends here |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
http://i.imgur.com/WVzV0uB.png
몇가지 기본동작
C-c C-j --- /join #channel
C-c C-p --- /part #channel
C-C C-q --- /quit
C-c C-n --- list users in current channel