[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Add sequential number on tab title.
- From: Hideyuki SHIRAI (白井秀行) <shirai@xxxxxxxxxxx>
- Date: Tue, 27 Mar 2007 19:25:03 +0900 (JST)
- X-ml-name: emacs-w3m
- X-mail-count: 09275
白井です。
FSF Emacs で (setq w3m-add-tab-number t) とすると、TAB の title
に数字を入れるようにしました。XEmacs はコードを見る限り最初から
数字が出ていると思われるのでパス。
# default は nil です。
なんでかというと、ここのところ、
(add-hook 'w3m-mode-hook
(lambda ()
(let ((key1 ?\C-0)
(key2 ?\M-0)
(ch 0))
(while (< ch 10)
(define-key w3m-mode-map (vector (+ key1 ch)) 'w3m-goto-buffer)
(define-key w3m-mode-map (vector (+ key2 ch)) 'w3m-goto-buffer)
(setq ch (1+ ch))))))
(defun w3m-goto-buffer (&optional arg)
"Goto w3m buffer to accompany inputed numbers like the following,
C-2 => *w3m*<2>
M-0 => *w3m*<max>
12M-3 => *w3m*<123>"
(interactive "p")
(let* ((num (+ (- (logand last-command-char ?\177) ?0)
(if (not current-prefix-arg)
0
(* arg 10))))
(max (length (w3m-list-buffers 'nosort)))
(bufname (cond
((or (= num 1) (= max 1))
"*w3m*")
((or (= num 0) (> num max))
(format "*w3m*<%d>" max))
(t
(format "*w3m*<%d>" num))))
(buf (get-buffer bufname))
win)
(if (not (and buf (buffer-live-p buf)))
(message "No exist w3m buffer \"%s\"" bufname)
(cond
((eq major-mode 'w3m-mode)
(set-window-buffer (selected-window) buf))
((setq win (catch 'win
(walk-windows
(lambda (w)
(save-excursion
(set-buffer (window-buffer w))
(when (eq major-mode 'w3m-mode)
(throw 'win w)))))))
(select-window win)
(set-window-buffer win buf))
(t
(pop-to-buffer buf)))
(message "Goto w3m buffer \"%s\"" bufname))))
なことをやって、数字一発でタブを切り替えるようにしているのですが、
タブが何番かわからないと困ってしまうからです。
さて、本題ですが、上記のコマンド、結構気に入っているのですが
commit しちゃってもよいですか? C-数字、M-数字 で prefix が与え
られなくなっちゃうので、どうしましょ、と悩んでいるところです。
# (setq w3m-goto-buffer-prefix-chars '(?\M-0 ?\C-0))
# みたいに指定可能ならよいかなぁ。。。
--
白井秀行 (mailto:shirai@xxxxxxxxxxx)