朝顔日記

バッファから送る

2003-03-18

最近、常用エディタを VZ から xyzzy へ変えるべくあれこれしているわけですが、困っていたひとつのことが解消されるlispをハケーンしました。ただ単に編集中のhtmlファイルをブラウザに渡すだけというものなんですが…。

HIE no xyzzyxyzzy の音 - ダイヤログボックス/ポップアップリストに載っていた技です。これを .xyzzy に書いておけば、C-]で編集中のhtmlファイルを各UAに渡すことができます。


;; バッファから送るのリスト
(defvar *buffer-send-to-list*
  (list
   '(" Internet Explorer" . "C:/bin/Sleipnir/sleipnir.exe")
   '(" Phoenix"           . "C:/bin/phoenix/phoenix.exe")
   '(" Mozilla"           . "C:/bin/Mozilla/mozilla.exe")
   '(" 6Opera"             . "C:/bin/opera/opera.exe")
   '(" 7Opera"              . "C:/bin/opera7/opera.exe")
   ))

;; バッファから送る
(defun buffer-sendto-dialog ()
  (interactive)
  (let ((file (get-buffer-file-name)))
    (when file
      (multiple-value-bind (result data)
      (dialog-box
       '(dialog 0 0 219 100
         (:caption "送っちゃうよ")
         (:font 9 "MS Pゴシック")
         (:control
          (:listbox list nil #x50b10111 7 7 150 82)
          (:button IDOK "送る" #x50010001 162 7 50 14)
          (:button IDCANCEL "送らない" #x50010000 162 24 50 14)))
       (list (cons 'list *buffer-send-to-list*))
       nil)
    (when result
      (let
          ((cmd (cddr (assoc 'list data))))
        (if cmd
        (call-process (map-slash-to-backslash (concat cmd " " file)) :wait nil)
          (message "なにもえらんでない。"))))))))
(global-set-key #\C-]  'buffer-sendto-dialog)

「バッファから送る」へコメントをつける

書き込み時の挙動について
URI らしき文字列には自動的にリンクが張られます。また "<" や、">" は実体参照化されます。
スパム対策のため、リファラを切っていると投稿できません。

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/03/diary_030318a.html