第2週で emacs の簡単な使い方を学習しました。 emacs をある程度使いこなすために今週はもう少し emacs の使い方を 学習しましょう。 今回は既に有るファイルを編集することにしますのでファイルをコピーして ください。
% mkdir week06 % cd week06 % cp ~asakaguc/semia2.www/data/week06.txt ./
このファイルの中身を調べたり編集することにしましょう。
emacs で将来ファイルを自由に編集する自信がつきましたか。
第2週ではメールを読んだり整理したりするコマンドセット mh の使い方 を少し学習しましたが、今週はもう少し他の mh コマンドについても 学習することにしましょう。
この授業では emacs の使い方やメイルの扱いについてこれ以上 の学習はありませんので「man で調べる」、「解説書を買って読む」、 「教官に質問のメイルを出す(あまり頼りになりませんが)」などして 下さい。
それでは今週の課題です。
これで今週の授業は終わりです。 お疲れさまでした。
とにかく emacs に入りましょう。
% emacs week06.txt &
まずこの文章中である文字列を探します。 探す文字列は何でも良いのですが「please」を探すことにします。 emacs で文字列を探すには CONTROL-s を使います。 CONTROL-s を打ちそれに続いて探したい文字列(今の場合「please」)を 打ちます。 「please」を打ち終えた段階で最初に見つかった文字列の所に エディタの行が来ています。 今探したい行は
Please delete following lines until come to the line start with "Keep".
で始まる行だとします。 残念ながら最初に見つけた行は目的の行ではないようです。 では次の候補を探します。 次を探すにはもう一度 CONTROL-s を打ちます。 CONTROL-s を打つたびに候補を探してゆきます。 上の行は見つかったでしょうか。
上の行が見つかったところで、その行に書いてある指示に従いその次の行から 「Keep」で始まる行までを消去することにします。 まず次の行の先頭にカーソルを移動しましょう。 ここで CONTROL-space を打ちます。 これはマークを設定するという作業です。 この行にマークできましたから次は「keep」の入った行を探します。 先ほどと同じように CONTROL-s で「keep」を探します。 CONTROL-s に続けて keep と打ち終った時には keep を含む行まで 飛んでいるはずです。
Keep this line and following lines.
とうい行は見つかりましたか。 カーソルは現在 keep の単語の後ろにいますのでその行の先頭(つまり keep の前)に移動して下さい。 ここで CONTROL-w を打つと先にマークした位置から現在のカーソル位置 までが消去されます。 矢印キーで少し移動してみると消去されたことがわかると思います。 第2週では行を消去するのに CONTROL-k を使いましたが多くの行を一度に 消去するにはマーク(CONTROL-space)と消去(CONTROL-w)を使うのが便利です。
「Keep」で始まる行の少し下の方の行に別の指示があります。 どうもその行を5行複製するように言っているようです。 複製を行なう一つの方法は、問題の行を一旦消去してから何回かペースト (貼り付け)する方法ですのでやってみましょう。 まず問題の行の先頭に移動します。 CONTROL-k を1回実行すると行の内容が空になります。 今の場合改行まで含めて複製したいのでもう一度 CONTROL-k を打って改行 自体も消去します。 後は CONTROL-y コマンドで必要な回数複製を行ないます。 どうですできましたか。
上の例では一旦行を消去してから貼り付けを行ないましたが、一旦消去してしまう のが気持ち悪い場合は消去の代わりに先ほどの CONTROL-w に似たコピーコマンド ESCAPE+w を使うことができます。 更に下の方に複製せよという指示がもう一つありますから、これでやってみま しょう。 まず CONTROL-w を使ったときと同じように複製したい行の最初に移動し CONTROL-space でマークします。その後複製したい行の次の行の先頭まで移動し ESCAPE+w(ESCAPE キーを押した後に w キーを打つ)を打ちます。 今の場合マークと共に3行を含むような位置で ESCAPE+w を実行して下さい。 CONTROL-w の場合と違って行が消えることはありません。 次に複製の行を置きたい場所にカーソルを移動し CONTROL-y を必要な回数 打ちます。 どうです、違いがわかりましたか。
あと知っておくと便利なコマンドとしては ESCAPE+> と(ESCAPE キーを打った 後で「>」を打つ)ESCAPE+<があります。 これらのコマンドはそれぞれファイルの最初へのジャンプと最後へのジャンプを 行ないます。 また1ページ単位で進んだり戻ったりするには CONTROL-v と ESCAPE+v が 使えます。 試しにやってみて下さい。
ファイルを編集する作業は大抵の場合(プログラムを書いたり論文を書いた りなど)今までにやった作業ができれば事足りるはずです。 これ以上の操作については、emacs の解説書が日本語でも出ていますので それを読んで下さい。
今週の最初に戻るまず来ているメイルをスプールから読みます。
% inc
というコマンドを使うのでしたね。 show や next コマンドでメイルを見て行くと教官からのメイルの中で「この メイルは消していいよ」と書いてあるものがあるはずです。 このようなメイルは普通送ってきませんが、あなたが手紙の内容などを見て 保管する必要がないと判断するメイルがあるはずです。 そのようなメイルは読んだ後に rmm(remove mail の意味)コマンドで消去する ことができます。 試しに教官から来たメイルを消去しましょう。
% scan % rmm % scan
mh のコマンドは常に現在見ているメイルやフォルダー(scan や folders コマン ドで + マークの付いているもの)に対して実行されるので注意して下さい。 2回目の scan コマンドでメイルが1つ消えたのが確認できたでしょうか。
更にメイルを読んで行くと教官からのメイルで「返事を下さい」と書いてある ものがあります。 メイルに対して返信する場合には mail コマンドを使ってもいいですが、mh にも 返事を出すコマンド repl(reply の意味)が用意されています。
% repl -editor emacs
ここで「-editor emacs」というオプションを付けましたが、これは返信の 手紙の内容を打ち込むときに使うエディタを指定しています。 repl コマンドはメイルの宛先、サブジェクト(元のメイルのサブジェクト の頭に「Re:」が付いたものが標準的です)を自動的に作ってくれますので、 それに続けてメイルの本文のみを打ち込みます。 通常の emacs の保存呼び終了(CONTROL-x CONTROL-s の後に CONTROL-x CONTROL-c でしたね)をすると「What now ?」と聞いてきます。 ここで「send」と打てば返送のメイルが送られます。 編集するときにわかると思うのですが、repl コマンドは元のメールの宛先 (つまりあなたに)にもメイルを出しますので、あなたにもこの返信の手紙が 届きます。
もう一つのメイルの操作にフォワードというのがあります。 もしあなたに来たメイルがあなた以外の人達にも関係していて、その人達が そのメイルを読むことが意味がある場合にそのメイルを転送(フォワード) することがあります。 このフォワードを行なうには mh では forw コマンド(forward の意味)を 使います。 教官から「転送して下さい」というメイルが来ているはずですから これを使ってメイルの転送を試してみましょう。 メイルを読んだ後で forw というコマンドを打って下さい。
% forw
forw コマンドを実行すると「To:」と聞いてきます。 これは転送する先を聞いてきていますので適当なメイルアドレスを 入れます。 今の場合は、適当な転送先も無いでしょうから教官に送って下さい (asakaguc@sci.hiroshima-u.ac.jp)。 次に「cc:」と聞いてきます。 これはカーボンコピーという意味で本来メイルを送りたい人以外にも 同じメイルを送りたい人がいる場合に指定します(空でも構いません)。 次に「Subject:」を入れるのですが、フォワードするメイルの場合 サブジェクトとして元のメイルのサブジェクトの後ろにフォワードした という意味で「(fwd)」を付けことが多くあります。 これだけ打ち込むと「------- Enter initial text」と出て入力待ちに なります。 これはただ単にメイルをフォワードするだけではなくて、あなたの コメントなどを付けてフォワードするためにあります。 今回は空でいいですから何も入力しないで CONTROL-d を打ちましょう (エンドオブファイルという意味でしたね)。 するとフォワードすべきファイルが自動的に挿入されます。 挿入が終ると「What now ?」と聞いてきますので「send」と打てばメイルが 送られます。
これだけマスターすれば充分「メイル文化」に参加できるはずです。
今週の最初に戻る今日の授業の前半は emacs の色々なコマンドを学びました。 その中で week06.txt を編集したはずですからそれを教官に送りましょう。
% mail -s 'サブジェクト' asakaguc@sci.hiroshima-u.ac.jp u0872000 \ < week06.txt
もう一つ emacs で編集するように作ったファイル week06.txt2 がありますので、 これをそのファイルの中に書いてある指示にしたがって編集したものを教官に 送って下さい。
% cp ~asakaguc/semia2.www/data/week06.txt2 ./ % emacs week06.txt2 % mail -s 'サブジェクト' asakaguc@sci.hiroshima-u.ac.jp u0872000 \ < week06.txt2
今日の授業の後半は mh のコマンドを学びました。 その学習中に返信と転送のメイルを送ったはずですから特に課題は ありません。 もし学習中に返信あるいは転送のメイルを送っていない人がいたら 今メイルを送って下さい。
これで今週の課題は終了です。
今週の最初に戻る