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

keep window start when w3m-view-this-url()



白井です。

hoge.el なコードを評価しておいて、local においた hoge.html から
w3m-view-this-url() や w3m-mouse-view-this-url() で hote.txt を
呼ぶと w3m なバッファの見え方が、本当は

+---------------------+
|20                   | 
|21                   |  (1)
|22                   | 
|23                   | 
=                     =

なように出てきて欲しいのですが、

+---------------------+
|1                    | 
|2                    |  (2)
|3                    | 
=                     =

となってしまいます。 ちょっとだけ調べると、

(defsubst w3m-view-this-url-1 (url reload new-session)
  (lexical-let (pos buffer newbuffer wconfig)
   <<snip>>
    (let (handler)
      (w3m-process-do
	  (success
	   (save-window-excursion
	     (prog1
		 (w3m-goto-url url reload nil nil w3m-current-url handler)
	       (setq newbuffer (current-buffer)
		     wconfig (current-window-configuration)))))

この save-window-excursion から抜ける前は (1) の状態なのですが、
抜けたときに (2) となってしまいます。

window-size-change-functions かな、と思ったのですが、違うようで
す。また、Emacs20, Emacs21 はこうなりました。

どうでも良いといえばどうでも良いところのような気もしますが、ちょっ
とお手上げで、出来たら期待通り動いて欲しいので、help です(_ _)。

# view-this-url-new-session() とが goto-url() だと (1) で大丈夫
# なところが悔しいところ。

-- 
白井秀行 (mailto:shirai@meadowy.org)
(add-hook 'w3m-display-hook 'hoge-start-window t)

(defun hoge-start-window (url)
  (when (and (w3m-url-local-p url)
	     (string-match "/hoge\.txt$" url)
	     (re-search-forward "^20$" nil t))
    (beginning-of-line)
    (set-window-start (selected-window) (point))))

hoge
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39