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

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



井上です。

Reiko TAKAHASHI <HFC03614@...> writes:

>  ずるをして、グラスルーツでほとんど完璧な点字(+かなりいい線の音声)表
> 示ができる、DOS(プロンプト)版Emacsを使い始めました。思っていたよりずっ
> とたくさんの表示がエコーエリアに出ていたことや、たとえば
> C-h f ** RET
> したときに画面上に新しいウィンドウができる様子等がすごーくよくわかってお
> もしろいです! 表示メッセージも*Messages*へ行かなくても正確にわかるし。

大昔はこれと似たようなものを、VDM1000のウインドー監視読み上げ機能と一緒
に使っていました。24行目を監視させて、C-gすると即座に「quit」とか言っ
てくれました。
他にも
auto-saving...done
とか
garbage correcting...done
とか。

>  すごく大昔のメールなのですが、
> 
> Reply Koichi INOUE <inoue@...>'s message:
> 
>} もう必要ないと思いますが、以下のようにすると一つのファイルに内容を追加
>} していくことができます。
>} 
>} 保存したい項目を表示(カーソルは最初においておく)
>} M->で表示部分の最後に移動(さっきいた先頭部分にに自動的にマークがつけられる)
......
> 
> の方法を使って、今フォーカス(?)の当たっているバッファ全体の内容を、ディス
> ク上の任意のファイルに append-to-file するマクロを作ってみたいなと思って
> います。
> (ほんとうは、あまり意味のないマクロでしょうか? 私はあったら便利かなと
> 思うのですが……)

古い話だけあって、そのころは高橋さんがlisperをめざすとは思っていなかった
のでキーボードマクロなどという多少回り道なことを書いたわけでして・・・
今なら、
(append-to-file START END FILENAME)
という呼び出し形式が理解できると思うので、
defunで引数filenameを持つ関数をつくって、
(interactive "Fappend file name: ")
としてユーザにファイル名入力を求めて、
(append-to-file (point-min) (point-max) filename)
とするだけのような気がします。
いかがでしょう?

> 井上さんが書いてくださっていた解説から私が考えた操作手順は、
> 
> 1. C-x (
> 2. (念のために)M-<
> 3. M->
> 4. M-w
これはいらない
> 5. M-x append-to-file RET
> 6. C-x )
> 7. M-x name-last-kbd-macro RET
> 8. append-buffer-to-file RET
> 9. M-x global-set-key RET C-cC-m RET append-buffer-to-file (RET?)
> 
>  これで、C-c C-mすると、今読んでいるバッファ全体をディスク上の任意のファ
> イル(キーボードからその都度指定する)にアペンドすることができるかなと思
> うのですが……できるでしょうか?

4.がよけいなこと以外は見た所できそうな気配です。やってみましたか?

>} Emacsを終了してもマクロやキー割り当てが残るようにするには、ちょっとだ
>} け関数の定義の仕方を憶えて.emacsに記述することになります。
> 
>  このやり方も、ぜひぜひ教えてください。

これがズバリ上に書いた
append-to-file
の使い方なんですね。
ようするに、キーボードマクロは「関数を書くことはできるけどそこまでしなく
てもよくて、Emacsを終了したら消えてしまってもかまわないようなもの」に使
うというつもりの機能なのだと思います。
さあ、defunしましょう(^_^)

# キーボードマクロの話を書いたとき、こうなることを予感しただろうか・・・

-- 
                    Koichi Inoue, ARGV
                    E-Mail: inoue@...
                    ICQ UIN: 74900690