[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: `C-c C-w' の戻り先



白井です。

From: TSUCHIYA Masatoshi <tsuchiya@xxxxxxxxxx> さん曰く
Subject: [emacs-w3m:09865] Re: `C-c C-w' の戻り先
Message-ID: <871w9i3fk2.fsf@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 19 Dec 2007 23:49:33 +0900

> >> On Wed, 19 Dec 2007 23:14:40 +0900 (JST)
> >> tats@xxxxxxxxxxxxxx (Tatsuya Kinoshita) said as follows:
> 
> >> 複数の *w3m* バッファがあるときに `C-c C-w' (w3m-delete-buffer) を実行
> >> した後で選択されるのは、現在は一つ前のバッファです。つまり、Tab を使っ
> >> ている場合は左隣に行きます。これをFirefox のように、以前に最後に選択し
> >> ていたバッファに戻るのはいかがでしょうか?
> 
> >個人的には、一つ前や元のバッファに戻るよりも、別バッファ(Tab)で開いた未
> >読の消化を優先したいので、下記のような使い方をしています。
> 
> 私が良くやるのは,
> 
>     C-u M-x w3m-antenna RET
>     更新されたページリストの部分に対して region を設定して,S-RET
>     1つのページ(= タブ)を見る毎に,C-cC-w で閉じていく
>     全て閉じ終わったら,巡回終了
> 
> という使い方なので,私も木下さんの使い方に1票かと思います.

木下さん土屋さんの使い方はいつもしていますが、ぼくの場合は、
C-cC-w では元のバッファに戻るのが好みかなぁ。だけど、今のまま(左
隣)でも、次の未読バッファでもなにも問題ないので強く主張するもの
ではありますせん。

そして、木下さん、土屋さんの「次の未読バッファに移動」というのは、
新規コマンドを作った方が便利ではないか?という感じがします。

荒削りだし、未読/既読をどうやって決めるか?という問題はあります
が。。。

(defvar w3m-buffer-unseen nil)
(make-variable-buffer-local 'w3m-buffer-unseen)

(add-hook 'w3m-display-hook 'w3m-set-buffer-unseen)

(defun w3m-set-buffer-unseen (&optional url)
  (setq w3m-buffer-unseen t)
  (add-local-hook 'pre-command-hook 'w3m-set-buffer-seen))

(defun w3m-set-buffer-seen ()
  (setq w3m-buffer-unseen nil)
  (remove-local-hook 'pre-command-hook 'w3m-set-buffer-seen))

(add-hook 'w3m-mode-hook
	  (lambda ()
	    (define-key w3m-mode-map "\C-c\C-m" 'w3m-move-unseen-buffer)))

(defun w3m-unseen-buffer-p (buffer)
  (save-excursion
    (set-buffer buffer)
    w3m-buffer-unseen))

(defun w3m-move-unseen-buffer ()
  "Move to next unseen buffer."
  (interactive)
  (when (eq major-mode 'w3m-mode)
    (let* ((bufs (w3m-list-buffers))
	   (right (memq (current-buffer) bufs))
      unseen)
      (setq unseen
	    (catch 'unseen
	      (dolist (buf (append right bufs))
		(when (w3m-unseen-buffer-p buf)
		  (throw 'unseen buf)))))
      (if (not unseen)
	  (message "No unseen buffer.")
	(switch-to-buffer unseen)
	(run-hooks 'w3m-select-buffer-hook)
	(w3m-select-buffer-update)))))
      
な感じ。w3m-unseen-buffer-p() の判定で tab の face を変えたり、
w3m-select-buffer-generate-contents() や
w3m-tab-menubar-make-items-1() の文字列をいじるとますますよいか
も。

-- 
白井秀行 (mailto:shirai@xxxxxxxxxxx)