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

Re: [bep] ファイルを結合するマクロ <Re: ミューをダウンロードしましたが・・・。



 r高橋です。

 今いるバッファ全体をディスク上のファイルにappendするコマンド、作って動
かしてみました。

Reply Koichi INOUE <inoue@...>'s message:

} (append-to-file START END FILENAME)
} という呼び出し形式が理解できると思うので、
} defunで引数filenameを持つ関数をつくって、
} (interactive "Fappend file name: ")
} としてユーザにファイル名入力を求めて、
} (append-to-file (point-min) (point-max) filename)
} とするだけのような気がします。

} これですが、おそらく、append-to-fileする部分を
} (let ((coding-system-for-write 'shift_jis-dos))
} ....)
} で囲んだ方がいいと思います。
} そうでないと、場合によってShift_JISとJISの混じったファイルを作ってしまっ
} たりしそうです。

 教えていただいたことをほとんど写した感じなのですが、

;;; バッファ全体をファイルに追加(shift jis)
(defun append-buffer-to-file (filename)   
  (interactive "Ffilename: ")
  (save-excursion)
  (let 
      ((coding-system-for-write 'shift_jis-dos))
    (append-to-file 
     (point-min) 
     (point-max) 
     filename)))
;;;ここまで

 *scratch*で遊んでみたり、無謀にも_emacsや.emacsにまで入れてみたりしまし
たが、どのやり方でも元気に動いてくれています(と思う)。ちょっとうれしい
……(^_^)。ただ、BEPだと"filename: "のプロンプトはしゃべってくれない……
ですよね? これをしゃべらせるようにする裏技ってあるでしょうか?

 coding-system-for-write と shift_jis-dos は、両方とも「変数」ですよね?
coding-system-for-write に shift_jis-dos というシンボルを束縛している……
と考えていいですか?
それで、なぜいきなりファイルの保存形式がshift_jisになるのでしょう?(Ema
csの変数にはなかったので、なぜいきなり shift_jis-dos を、意味のある変数と
して使えるのかな……と不思議です)。

 で、もしかしたら過去メールにも coding-system-for-write とか shift_jis-
dos があるかも!と思って、自分のパソコンの中だけだけれど検索してみたら、
n高橋さんや井上さんや坂本さんの「learning lisp」を発見! どれも、以前は
わからなくて読んでいなかったメールだったのに、今読むとなんとなくわかるの
がうれしかったです。
それで、調子に乗って、_emacsと.emacsの、上のLispの後に、以前n高橋さんが書
いてくださっていた

(global-set-key [f12] 'append-buffer-to-file)

を付けてみたら、ちゃんとf12でコマンドが起動(?)しました! おもしろいです
……。


**-***-***-***-***-***-***-***-***-***-***-***-**
           Reiko TAKAHASHI  (高橋玲子)
         E-mail:  HFC03614@...
         ICQ UIN: 85924121  (Twinkle)
**-***-***-***-***-***-***-***-***-***-***-***-**