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

[xyzzy:04555] Re: 変換



Kyo さん、こんにちは。

	2000年5月26日(金)[23:11:15]の、
	[xyzzy:04554] 変換
	への返事です。

> 実はPsion用にxyzzyを使ってるのですが、UTF-8とS-JISとを自動的に一括変換す
> る方法ってないでしょうか?今はひとつひとつ読み込まして名前をつけて保存で

こんな感じ? 指定されたディレクトリ内のファイル全部変換
します。

(defun convert-encoding-directory (from to encoding)
  (setq from (namestring from))
  (setq to (namestring to))
  (or (and (path-equal from to)
	   (not (yes-or-no-p "入力と出力が同じっぽいっすけどいいっすか?")))
      (let (buffer)
	(unwind-protect
	    (progn
	      (do-events)
	      (setq buffer (create-new-buffer "*foo*"))
	      (set-buffer buffer)
	      (set-buffer-fileio-encoding encoding)
	      (mapc #'(lambda (f)
			(message "~a..." f)
			(erase-buffer buffer)
			(insert-file-contents (merge-pathnames f from))
			(write-region (point-min) (point-max)
				      (merge-pathnames f to)))
		    (directory from :file-only t)))
	  (and buffer (delete-buffer buffer)))))
  (message "done"))

(defun sjis2utf (from to)
  (interactive "Dsjis2utf: \nDto: ")
  (convert-encoding-directory from to *encoding-utf8*))

(defun utf2sjis (from to)
  (interactive "Dutf2sjis: \nDto: ")
  (convert-encoding-directory from to *encoding-sjis*))


> 変換していってますが、死ぬほどだるくて・・・。もしくは引数を使って起動し
> て変換後すぐに終了させる方法も知りたいなあ。xyzzyは多機能すぎて使い方がい

こっちは、こんなことすれば出来ないことはありませんが…。

 xyzzy.exe 変換元ファイル名
   -e "(progn (set-buffer-fileio-encoding *encoding-utf8*)
   (set-buffer-file-name \"変換先ファイル名\")
   (set-buffer-modified-p t)(save-buffer))" -f kill-xyzzy

-- 
亀井哲弥(Tetsuya Kamei)
kamei@xxxxxxxxxxxx

Index Home