[Last updated: <2002/01/03 12:28:41 +0900>]

Tips

browser-wrap

[browser-wrap] (2001/12/29)

html+-mode 等で browser.dll を便利に使わせてもらう。

ツールバーに登録してしまうようになりました。 趣味にあわない方は適当に browser-wrap.l を書き換えてください。

browser-wrap の使用をやめる場合は設定ファイルから browser-wrap に関する記述を削除した上で、余分な情報を削除するために、
(delete '*browser-position* ed::*history-variable-list* :test #'eq)
(delete-command-bar 'browser-tool-bar)
を評価してから xyzzy を再起動してください。

下に書いてみた設定。
M-F9, M-F10 で navigate モード on/off。
M-F11 で navigate 表示領域を変更。
html+-mode では C-xC-s で保存と同時に navigate 画面更新。

ついでに Another HTML-lint を使う設定なんかも。
AN HTTP ServerActivePerl でローカルで動かしてます。 cygwin で動く w3m での表示もなんとなく確認してみています。

[browser-wrap]

[browser-wrap2]

[ChangeLog]


●設定例
;;
;; browser, browser-wrap
;;
(load-library "browser")
(load-library "browser-wrap")
(global-set-key #\M-F9 'navigate-current-buffer)
(set-function-bar-label #\M-F9  "OpenBrowser")
(global-set-key #\M-F10 'close-browser)
(set-function-bar-label #\M-F10 "CloseBrowser")
(global-set-key #\M-F11 'rotate-browser)
(set-function-bar-label #\M-F11 "RotateBrowser")

(defun my-html+-mode-hook ()
  ; ------------------------------------------------------------
  ; browser が開いていたら現在のファイルを表示
  (navigate-current-file-with-check)
  ; auto-time-stamp.l の save-buffer-with-time-stamp を使っている人用
  (define-key ed::*html+-mode-map* '(#\C-x #\C-s)
              'save-buffer-with-time-stamp-and-navigate-current-file-with-check)
;  ; auto-time-stamp.l を使っていない人用
;  (define-key ed::*html+-mode-map* '(#\C-x #\C-s)
;             'save-buffer-and-navigate-current-file-with-check)

  ; ------------------------------------------------------------
  ; html+-mode で htmllint を使って構文チェック (CGI)
  (defvar *htmllint-url* "http://localhost/htmllint/htmllint.cgi?V;X=w3m;URL=")
  (defun htmllint-cgi ()
    (interactive)
    (let ((file (get-buffer-file-name)))
      (when file
        (close-browser)
        (navigate (concat *htmllint-url* file)))))
  (define-key ed::*html+-mode-map* '(#\C-c #\C-l) 'htmllint-cgi)
  (define-key ed::*html+-mode-map* #\M-F12 'htmllint-cgi)
  (set-function-bar-label #\M-F12 "htmllint")

  ; ------------------------------------------------------------
  ; html+-mode で htmllint を使って構文チェック
  (defvar *htmllint-file* "C:/httpd/htdocs/htmllint/htmllint")
  (defun htmllint-exec ()
    (interactive)
    (let ((file (get-buffer-file-name)))
      (when file
        (pipe-command
         (format nil "perl \"~A\" \"~A\""
                 (map-slash-to-backslash *htmllint-file*)
                 (map-slash-to-backslash file))))))
  (define-key ed::*html+-mode-map* '(#\C-c #\l) 'htmllint-exec))
(add-hook 'ed::*html+-mode-hook* 'my-html+-mode-hook)