ERCのプロンプトにチャンネル名表示

というネタは EmacsWiki: Erc Configuration の Channel-specific prompts に書いてあるんだけど、そこにも書いてあるとおり、初回表示時にはチャンネル名にならないのでこんな感じにハック。

(setq erc-prompt (lambda ()
                   (let* ((buffer (buffer-name))
                          (channel (with-temp-buffer
                                     (insert buffer)
                                     (beginning-of-buffer)
                                     (when (re-search-forward "\\(#[^@]+\\)" nil t)
                                       (match-string 1)))))
                     (if channel
                         (erc-propertize (concat channel ">") 'read-only t 'rear-nonsticky t 'front-nonsticky t)
                       (if (and (boundp 'erc-default-recipients) (erc-default-target))
                           (erc-propertize (concat (erc-default-target) ">") 'read-only t 'rear-nonsticky t 'front-nonsticky t)
                         (erc-propertize (concat "ERC>") 'read-only t 'rear-nonsticky t 'front-nonsticky t))))))

バッファ名からチャンネル名部分とるようにした感じ。

1:1 トークとかどうなるかわからないのでとりあえず EmacsWiki のルーチンも書いておいた。

by typester / at 2009-01-26T11:41:00 / emacs / Comments(0)