というわけで、今さらですが 10月30日の日曜日に、今年も子供会でホテル三日月の龍宮城に行ってきた。塩サウナでお肌すべすべ。
久しぶりに Solaris と cygwin で作ったら、どっちも anthy.dic が 64byte しかない。うーーむ。ぼくが悪いのか?
とりあえず、ML に報告しつつ、丸山さんの Zaurus パッケージの share/anthy/* で上書きしたら動いたのでヨシとしよう。
ちょっと前は cygwin でまったく make できなかったので大進歩だし。
(require 'jisx0213) しているときは大丈夫なコードができたと思うのだが、あとはよくわからん。修行不足。もうちょっと時間がかかりそう。四連休だし ^^;;;
こんなに年は喰ったのに、未だにまったく理解できない。「狸でもわかる CCL」はないものか?まったくもって修行不足。
世間では 11月 3日(木)〜11月 6日(日) は飛石連休だったろうけど、なぜだかうちの会社は 4日(金) が会社自体が休みで四連休だったのだ。けっしてサボったわけではない。
ちょっと自分の DELL のパソコンをいじって、なんとか Meadow がいろいろと動き出した。予定より数ヵ月遅れだが、これで、自宅でもいろいろと遊べるようになるのよ。
朝っぱらから野球の練習&練習試合。その後、若干ビールで乾杯していたら一日が終わってしまった。夜、ふと気付くと、ちょっと熱っぽい。野球のときに風邪をひいていた奴に移されたか?
女房がちょっとだけ働きに行って、その後二人で船橋ララポートへ。Dog Dept とか Eddie Bauer とか。ララポートも平日は空いていてよろしい。が、やっぱりちょっとだけ熱っぽい。
子供達の授業参観。うーむ熱っぽい。36.9℃程度だが、平熱よりは 1℃以上高い。
ここ 10年ほど、連続テレビドラマというのは、NHK 朝の連続テレビ小説以外まったく見ていなかったのだが、土曜日 21時からの野ブタ。をプロデュースを見ている。しかし、第一回目を見逃したのが痛いかも。
あいかわらず熱っぽいので、ぼーっとしていたり、子供のベッドで昼寝をしていたり。
夕方から野球(久しぶりのナイタ)の予定だったが、雨でお流れで助かった。その代わりに TV でビートたけしの座頭市を見て興奮。勝新太郎の泥くさい殺陣も良かったけど、こういう座頭市もかっこいいな。
辞書が 64Byte だよ、と嘆いていたが、環境変数 TMPDIR を unset することで、きちんとした辞書ができた。田畑さんに感謝。「こっそり予測変換」に tamago で対応できるとかっこいいかもしれないが、'C' レベルでわからないとだめだな。。。
ひゃー何が始まったのかと驚いた。こりゃ M-x grep とか M-x grep-find が簡単にはできなくなるなと思ったが、ぼくが常用している lgrep は大丈夫だった。ほっと一安心。
というわけで、無事 Elscreen 1.4.0 が公開された。某所であった、右?左? の話はとりあえずペンディング。
(define-key elscreen-map "z" 'elscreen-select-and-goto2)
(define-key elscreen-map "\C-z" 'elscreen-select-and-goto2)
(defface elscreen-selected-face
`((((class color) (type tty)) (:foreground "blue"))
(((class color) (background light)) (:foreground "white" :background "dark blue" :bold t))
(((class color) (background dark)) (:foreground "LimeGreen" :background "white" :bold t))
(t (:bold t :underline t)))
"Face of selected screen."
:group 'elscreen)
(defface elscreen-select-face
`((((class color) (type tty)) (:foreground "black"))
(((class color) (background light)) (:foreground "black"))
(((class color) (background dark)) (:foreground "white"))
(t nil))
"Face screens."
:group 'elscreen)
(defun elscreen-select-and-goto2 ()
(interactive)
(let* ((showbuf (get-buffer-create " *Elscreen select*"))
(wheight (max (+ (elscreen-get-number-of-screens) 4)
window-min-height))
(msgs "")
(minimsg "Select SCREEN number or (c)reate, (k)ill, (f)ind-file, e(x)ecute")
(names (elscreen-get-screen-to-name-alist (- (frame-width) 10)))
(cscrn (elscreen-get-current-screen))
(command-list '((?c . elscreen-create)
(?k . (continue . (elscreen-kill . num)))
(?f . elscreen-find-file)
(?x . elscreen-execute-extended-command)))
window last-window
num c num-or-func continue tmp)
(setq tmp minimsg)
(setq minimsg "")
(while (string-match "(\\(.\\))" tmp)
(setq minimsg (concat minimsg (substring tmp 0 (match-beginning 1))))
(setq c (match-string 1 tmp))
(setq tmp (substring tmp (match-end 0)))
(put-text-property 0 1 'face 'bold c)
(setq minimsg (concat minimsg c ")")))
(setq minimsg (concat minimsg tmp))
(setq c nil)
(setq names (sort names (lambda (x y) (< (car x) (car y)))))
(if (not names)
(message "No screen")
(mapcar (lambda (x)
(setq num (car x))
(setq x (format " %d: %s %s"
(car x)
(elscreen-status-label (car x))
(cdr x)))
(add-text-properties 0 (length x) `(elscreen-select-number
,num
face
elscreen-select-face)
x)
(setq msgs (concat msgs "\n" x)))
names)
(unwind-protect
(save-window-excursion
(setq last-window (previous-window (static-if elscreen-on-xemacs
(frame-highest-window)
(frame-first-window))))
(while (minibuffer-window-active-p last-window)
(setq last-window (previous-window last-window)))
(while (and
(not (one-window-p))
(or (< (window-width last-window)
(frame-width))
(< (window-height last-window)
(+ wheight window-min-height))))
(setq window last-window)
(setq last-window (previous-window window))
(delete-window window))
(select-window (split-window last-window))
(shrink-window (- (window-height) wheight))
(switch-to-buffer showbuf)
(setq buffer-read-only nil)
(erase-buffer)
(shrink-window (- (window-height) wheight))
(insert "Select SCREEN:\n" msgs "\n")
(goto-char (point-min))
(when (re-search-forward (format "^ +%d:" cscrn) nil t)
(beginning-of-line))
(add-text-properties (1+ (point)) (line-end-position)
'(face elscreen-selected-face))
(while (null c)
(set-buffer-modified-p nil)
(setq c (static-if (fboundp 'read-event)
(read-event minimsg)
(message minimsg)
(read-char-exclusive)))
(cond
((memq c '(?q ? ))
(setq num-or-func 'exit))
((and (numberp c) (assq (- c ?0) names))
(add-text-properties (point) (line-end-position)
'(face elscreen-select-face))
(goto-char (point-min))
(let ((case-fold-search nil))
(when (re-search-forward (format "^ %c:" c) nil t)
(beginning-of-line)
(add-text-properties (1+ (point)) (line-end-position)
'(face elscreen-selected-face))
(sit-for 0.5)))
(setq num-or-func (get-text-property (point) 'elscreen-select-number)))
((memq c '(?\C-m return))
(setq num-or-func (get-text-property (point) 'elscreen-select-number)))
((assq c command-list)
(setq num (get-text-property (point) 'elscreen-select-number))
(setq num-or-func (cdr (assq c command-list))))
((memq c '(?\C-n ?n down))
(setq c nil)
(add-text-properties (point) (line-end-position)
'(face elscreen-select-face))
(forward-line)
(unless (get-text-property (point) 'elscreen-select-number)
(goto-char (next-single-property-change
(point-min)
'elscreen-select-number)))
(add-text-properties (1+ (point)) (line-end-position)
'(face elscreen-selected-face)))
((memq c '(?\C-p ?p up))
(setq c nil)
(add-text-properties (point) (line-end-position)
'(face elscreen-select-face))
(forward-line -1)
(beginning-of-line)
(unless (get-text-property (point) 'elscreen-select-number)
(goto-char (point-max))
(forward-line -1)
(beginning-of-line))
(add-text-properties (1+ (point)) (line-end-position)
'(face elscreen-selected-face)))
(t
(setq c nil)
(unless (string-match "retry$" minimsg)
(setq minimsg (concat minimsg ", retry")))))))
(kill-buffer showbuf))
(when (and (consp num-or-func)
(eq (car num-or-func) 'continue))
(setq continue t)
(setq num-or-func (cdr num-or-func)))
(cond
((numberp num-or-func)
(message "Goto screen %d" num-or-func)
(funcall 'elscreen-goto num-or-func))
((functionp num-or-func)
(message "Execute %s" (symbol-name num-or-func))
(call-interactively num-or-func))
((and (consp num-or-func)
(functionp (car num-or-func))
(eq 'num (cdr num-or-func)))
(message "Execute %s with %d" (symbol-name (car num-or-func)) num)
(funcall (car num-or-func) num)))
(when continue
(elscreen-select-and-goto2)))))
こんな感じかぁ。もしかすると、洩れがあるかも。
でございます。継ぎ足し、継ぎ足しで作ったから結構冗長化。
(defvar w3m-pop-elscreen t)
(defadvice w3m-popup-buffer (around w3m-elscreen-poup-buffer activate)
(if (or (not w3m-pop-elscreen)
(memq this-command '(w3m-copy-buffer
;; w3m-goto-url-new-session
w3m-view-this-url-new-session))
(not (featurep 'elscreen))
(save-window-excursion
(catch 'detwin
(let ((owin (selected-window))
(oframe (selected-frame)))
(mapcar (lambda (frame)
(unless (eq frame oframe)
(select-frame frame)
(mapcar (lambda (win)
(set-buffer (window-buffer win))
(when (eq major-mode 'w3m-mode)
(throw 'detwin t)))
(window-list))))
(frame-list))
nil))))
(let ((w3m-pop-up-frames nil)
(w3m-pop-up-windows nil))
ad-do-it)
(if (stringp buffer)
(setq buffer (get-buffer buffer)))
(let ((screen (elscreen-find-screen-by-buffer buffer))
(create t))
(when (and (not screen)
(memq this-command '(w3m-goto-url-new-session)))
(if (not (eq major-mode 'w3m-mode))
(setq create nil)
(setq screen
(elscreen-find-screen
(lambda (num)
(elscreen-goto-internal num)
(save-selected-window
(catch 'find
(mapcar
(lambda (window)
(select-window window)
(when (and (eq major-mode 'w3m-mode)
(not (eq (current-buffer) buffer)))
(throw 'find num)))
(window-list))
nil)))))))
(if screen
(progn
(when (/= (elscreen-get-current-screen) screen)
(elscreen-goto screen))
(if (not (or (one-window-p)
(eq major-mode 'w3m-mode)))
(let* ((cwin (selected-window))
(win (previous-window cwin))
buf)
(catch 'detect
(while (not (eq cwin win))
(setq buf (window-buffer win))
(set-buffer buf)
(when (eq major-mode 'w3m-mode)
(select-window win)
(throw 'detect 'ok))
(setq win (previous-window win)))
(elscreen-create)
(set-window-buffer (selected-window) buffer)))
(unless (eq (current-buffer) buffer)
(set-window-buffer (selected-window) buffer))))
(when create
(elscreen-create))
(defun w3m-no-elscreen (&optional url)
(interactive
(let ((url (w3m-examine-command-line-args))
new)
(list
(or url
(let ((default (if (w3m-alive-p) 'popup w3m-home-page)))
(setq new (if current-prefix-arg
default
(w3m-input-url nil nil default
(not (get-buffer "*w3m*"))))))))))
(let (w3m-pop-elscreen)
(cond ((eq url 'popup) (w3m))
(t (w3m url)))))
(add-hook 'mew-suspend-hook 'elscreen-kill-buffer-force)
(add-hook 'mew-quit-hook 'elscreen-kill-buffer-force)
(add-hook 'navi2ch-exit-hook 'elscreen-kill-buffer-force)
(defadvice w3m-close-window (after elscreen-kill-buffer activate)
"Kill elscreen."
(elscreen-kill-buffer-force))
(defadvice w3m-quit (after elscreen-kill-buffer activate)
"Kill elscreen."
(elscreen-kill-buffer-force))
(defadvice kill-buffer (after elscreen-kill-buffer activate)
"Kill elscreen."
(elscreen-kill-buffer))
(defun elscreen-kill-buffer-force ()
(elscreen-kill-buffer 'force))
(defun elscreen-kill-buffer (&optional force)
(when (and (not (elscreen-one-screen-p))
(or force
(memq this-command '(kill-buffer))))
(let* ((cur (elscreen-get-current-screen))
(buffer (current-buffer))
(new (elscreen-find-screen
(lambda (screen)
(if (= cur screen)
nil
(elscreen-goto-internal screen)
(member buffer
(mapcar (lambda (window)
(window-buffer window))
(window-list))))))))
(cond
(force
(elscreen-kill)
(when new
(elscreen-goto new)))
(t
(when new
(elscreen-kill)
(elscreen-goto new)))))))
(define-key elscreen-map "d" 'elscreen-dired)
(defvar elscreen-dnd-buffers nil)
(defadvice x-dnd-handle-drag-n-drop-event (around elscreen-dnd-buffers activate)
(setq elscreen-dnd-buffers nil)
(save-window-excursion ad-do-it)
(when elscreen-dnd-buffers
(elscreen-goto (car (mapcar
(lambda (buffer)
(elscreen-find-screen-by-buffer buffer 'create))
elscreen-dnd-buffers)))
(setq elscreen-dnd-buffers nil)
(elscreen-notify-screen-modification 'force-immediately)))
(defadvice w32-drag-n-drop (around elscreen-dnd-buffers activate)
(setq elscreen-dnd-buffers nil)
(save-window-excursion ad-do-it)
(when elscreen-dnd-buffers
(elscreen-goto (car (mapcar
(lambda (buffer)
(elscreen-find-screen-by-buffer buffer 'create))
elscreen-dnd-buffers)))
(setq elscreen-dnd-buffers nil)
(elscreen-notify-screen-modification 'force-immediately)))
(defadvice dnd-handle-one-url (after elscreen-get-dnd-buffers activate)
(setq elscreen-dnd-buffers
(cons (current-buffer) elscreen-dnd-buffers)))
すでに小関さんが紹介しているので表紙とかは無しだが、うちの日記の大屋さん達が書いた本。よろしく。
ちゅうわけで、サイン所望。いつでもメール or 電話待つ。
でした。学芸会は三年に一度で、後の二年は音楽会、展覧会なのだ。息子は三年前の学芸会だと狼の親分だったのだが、今度は狼の子分で『おやびん』とか言っていた。
娘は「べろだしちょんま」の妹の「うめ」。
(defun pobox-undo ()
(interactive)
(cond
...snip...
(t
(if (= (length pobox-pat) 1)
(pobox-conv-cancel-all)
(setq pobox-pat (substring pobox-pat 0 -1))
(pobox-set-cands pobox-pat)
(pobox-erase-cand-list)
(pobox-erase-curstr)
(condition-case nil ;; buffer の最後だとエラーになるよ
(pobox-disp-curstr)
(error nil))
(pobox-disp-cand-list)
;; (pobox-disp-input)
(setq pobox-input-column (1- pobox-input-column))
(unless (eq (char-before) ?\])
(when (search-backward "]" nil t)
(goto-char (match-end 0))))))))
しかし、あまりといえば、あまりに適当な逃げだな。
(substitute-key-definition
'self-insert-command 'pobox-keyin map global-map)
な感じのところは、なぜだかめちゃくちゃ時間がかかってしまうので、三ケ所ほど、
(let ((i 33)) (while (< i 127) (define-key map (vector i) 'pobox-keyin) (setq i (1+ i))))な風に変えた。最後の一個は 'pobox-narrow-keyin ね。
% cd ~/Documents % ln -s /home/zaurus homeとかやっていたのだが、さっき、GUI でソフトをインストールしようと思ったら、ソフトウェアインストーラがリンクをたどって無限ループに入ってしまったようだ。うーーむ。
△ TrackBack [http://tty0.exblog.jp/2661744 徒然な覚書 ElScreen, Emacs 22.0.5..]