mode - みる会図書館


検索対象: UNIX MAGAZINE 1991年5月号
16件見つかりました。

1. UNIX MAGAZINE 1991年5月号

ernacs 入門 図 32 egg-roma-kana-dump. el (egg : set¯mode—lndicator "roma—kana't (egg : set—mode—map 'troma—kana' (setf-key— (setf-key— ( s etf -key— ( set f -key- (setf-key- (setf-key- (setf-key- (setf-key- " a あ " ) (let ( (map (cons nil れ il ) ) ) 90 (list (let ((map (cons map ⅱ 1 ) ) ) (setf¯key (setf-key act1011 map action map actlon map action map act101i map action map action map —action map —action map action map 46 (list (list 44 (list (list 47 (list (list 63 (list (list 111 (list (list 101 (list (list 117 (list (list 105 (list (list 97 (list (list 'top "Z't map)" 'top "Z" map)" 'top "Z" map) " ? 'top ' top ' top ) top 'top map) " い きのダンプファイルです。図 32 は egg-roma-kana. el の ダンプファイルの例、、 egg-roma-kana-dump. e1〃です。 独自のローマ字かな変換ファイルを作ったときには、 dump-egg-mode-map コマンドを使ってダンプ形式の ファイルに変換してください。まず、作成したローマ字か な変換テープルのファイルを find-file で読み込みます。 次に、このバッフアで eval-current-buffer を実行しま EGG mode: roma-kana 定した、、 roma-kana" と入力してください。 きには、図 31 の最初の、、 (define-egg-mode を実行すると、ますモードマップ名を訊かれます。このと M-x dump-egg-mode-map そして、 M-x eval—current—buffer す。 . ) クで指 のように指定してください。これで、ダンプファイルが作 Output file name:-/lisp/my—roma-kana—dump. el 続いて、出力するダンプファイル名を訊いてくるので、 、、・成されます。あとは、 Egg を起動したときにダンプファイ ルを読むように設定すれば万全です。 Nemacs のキーバインドを変更する方法については以 前にも説明したので今回は省略して、ここでは Egg モード のときに使われるキーマップの説明をしておきましよう。 基本的に、 Egg では次の 2 種類のキーマップを用意してい ます。 ・ fence—mode—map ・ henkan-mode-map ローマ字入力がかなに変換されている状態、すなわち、 ーにゆうリよくもじー はフェンスモードと呼ばれるモードで、入力したキーは fence-mode-map にしたがって解釈されます。これに対 し、かな漢字変換をおこなって確定していない状態、つま 一人力文字ー は変換モードで、 henkan-mode-map が有効になってい ます。これらのキーマップは wnn ー egg. el のなかで、 (define—key fence—mode—map "\C—@" 'henkan—fence—region) や、 (define—key henkan—mode—map "\C-I" 'henkan-kakutei) のように定義されているので、この定義を変更すれば自分なりのキーバインドが設定できます。このキーマップとロ 132 UNIX MAGAZINE 1991.5

2. UNIX MAGAZINE 1991年5月号

emacs 入門 ・今回出てきたコマンドの一覧 尹ーパーライト・モードのコマンド M-X overwrite—mode プレビエーション・モードのコマンド M-x abbrev—mode M-x expand-abbrev (C-x ) ) M-x unexpand—abbrev M-x add—global—abbrev (C-X + ) M-x add—mode—abbrev (C-x C-a) M-x inverse—add—global—abbrev (C-x ー ) M-x inverse—add—mode—abbrev (C-X C-h) M-x ki11—a11—abbrevs M-x edit—abbrevs M-x edit—abbrevs—redefine (C-C C-C) M-x read—abbrev—file M-x vrite—abbrev—file M-x list—abbrevs 134 henkan- mode- map fence-mode-map Jserver-host-name wnn-host-name isp 変数 M-x info (C-h 1 ) M-x eval—current—buffer M-x dabbrev-expand (M-/) M-x set—goal—column (C-x その他のコマンド C-b C-f C- 1 C-o C-I Egg の変換に関するコマンド M-x dump-egg-mode-map M-X set—vnn—host—name M-x toggle-egg-mode fgg 関係のコマンド M-x fill-region (M-g) M-x fill-paragraph (M-q) M-x set—fill-column (C-x M-x auto—fill—mode オートフィル・モードのコマンド c-n) f) バーライト・モード / インサート・モードの切替え ・モード / 通常モードの切替え 省略形を展開 アプレビエーション 省略形の展開をおこなわない UNIX MAGAZINE 1991.5 Egg の変換モードでのキーマッフ。 Egg のフェンスモードでのキーマッフ。 ハーのホスト名 かな漢字変換サー のホスト名 かな漢字変換サ ドキュメント・プラウザへ入る 現在のパッフアの内容を Lisp フ。ログラムとして評価 省略形をダイナミックに展開する 行を移動したときのカーソル位置 ( カラム ) の指定 前の文節へ移動 次の文節へ移動 文節を縮める 文節を伸ばす 確定 変換開始 かな漢字変換サー ーのホスト名を指定 かな漢字変換サ のホスト名を指定 Egg モード / 通常のモードの切替え 指定された範囲の文章を揃え直す 1 段落ぶんの文章を揃え直す 1 行のカラム数を制限 オートフィル・モード / 通常モードの切替え ファイルからの省略形の定義の読込み 省略形の定義をファイルに保存 省略形の定義の一覧表示 省略形の定義の更新 省略形の定義の変更・追加・削除 すべての省略形を削除 字列を定義 省略形に対してその時点のメジャーモードで有効な展開文 文字列を定義 省略形に対してすべてのメジャーモードで有効な展開後の な省略形を定義 展開後の文字列に対してその時点のメジャーモードで有効 省略形を定義 展開後の文字列に対してすべてのメジャーモードで有効な

3. UNIX MAGAZINE 1991年5月号

write abbrev file: ~ / ガ印 arne[CRl に省略形の定義を書き込むファイル名を指定すれば、指定 したファイル ()i 襯のに省略形が保存できます。また、 Write abbrev file : とすれば、デフォルトのファイル /. abbrev-defs に省略 形が保存されます 4 。 ファイルに保存した省略形を読み込むには、 M-x read—abbrev—f i1e Read abbrev file: ~ / . abbrev-def コマンドを実行してください。こうしておけば、 Nemacs を終了しても安心ですね。 細かい技を磨きましょ いつ 簡単な使い方を習得したところで、もうすこし複雑なこ とをしてみましよう。 add-global-abbrev コマンドで定 義した省略形は、すべてのメジャーモードで共通に使える ことに気づきましたか ? でも、なんでもかでも共通だと不 便なこともあります。たとえば、 Fortran 用に定義されて いるアプレピエーションなどは C や Lisp では役に立ちま せん。そこで、 M-x add-mode-abbrev (C-x c-a) も試してみてください。使い方は add-global-abbrev と 同しですが、現在のメジャーモードに限って有効な省略形 を定義します。 add-global-abbrev や add-mode- ab- brev コマンドでは、単語だけでなく複数の文字列 ( リージ Describe function: add—global—abbrev M-X describe—function 説明しませんが、ヒントだけ挙げておきましよう。 ョン ) に対して省略形を指定することもできます。ここでは UNIX MAGAZINE 1991.5 もとのファイルに書き込んでしまうため、たいへん危険です。 るようになっているはすですが、 Nemacs-3.2 ではファイル名を指定しないと 4 本来はファイル名を指定しなけれは、デフォルトのファイルに省略形を保存す です。 Nemacs のコマンドのドキュメントを表示するコマンド を実行してみてください。 describe ー function は、 emacs 入門 //\ノ N ーーⅱ」には、い【 3 ーハい ! Ⅱドに 0 (global-abbrev-table) (fundamenta l-mode-abbrev-tabl e ) (lisp-mode-abbrev-table) ( text-mode-abbrev-tab le ) (c-mode-abbrev-table) 8 という音味て 7 「このバッフアは Abbrev マイナーモードだよ」 6 と表示されています。 "Abbrev" は 5 4 (Fundamen€a 1 Abbrev ) 2 モートラインを見て下さい。 1 この文章は abbreviation モードの例てす . 図汚 edit-abbrevs コマンドの実行例 りです。そうです ! しつは本当に同しバッフアです。 ろ list-abbrevs コマンドで表示されたバッフアとそっく ドを実行したときに表示されるバッフアで、一見したとこ 図 15 を見てください。この図は edit-abbrevs コマン 接変更するコマンドです。 るコマンドです。一方、 edit-abbrevs は省略形の定義を直 からも分かるとおり、すべての省略形を、、ないない 6 〃にす のどちらかを実行してください。 kill-al ト abbrevs は名前 M-x edit-abbrevs M-x kill-all-abbrevs はもうャンピ 5 〃と思ったら、 を取り消す方法が出てきていませんでしたね。、、この省略形 ていることに気づいたでしようか ? そう、定義した省略形 ンドを紹介してきましたが、基本的なコマンドが 1 つ抜け これまでアプレビエーション・モードのさまざまなコマ う想像できますよね。 なんてことはも ですが、どちらがどんな働きをするカ (C-x c-h) M-x inverse-add-mode-abbrev と、 (C-x ー ) M-x inverse-add-global-abbrev して展開後の文字列を指定するコマンドもあります。 形を定義するコマンドでした。これとは逆に、省略形に対 に単語ありき〃で、展開後の文字列テキストに対して省略 add-global-abbrev や add-mode-abbrev はツましめ 6 筆名・は第未定義〃と言いたいらしい。 5 第使わない″の意味のようです。 123

4. UNIX MAGAZINE 1991年5月号

emacs 入門 図田省略定義の追加 1 この文章は abbreviation モ 2 モードラインを見て下さい。 ードの例です . 3 4 5 (Fundamental Abbrev) 6 と表示されています。 "Abbrev ・ は 7 「このバッフアは Abbrev マイナーモードだよ」 8 という童味て (c-mode-abbrev-table) (text-mode-abbrev-ta b le ) ( 1 i sp-mode-abbrev-tab le ) ( fundamental -mode-abbrev-tab 1 e ) (global-abbrev-table) 3 0 0 abbreviation" expand ・ 図 16 では→ expand" の定義も追加してみまし V きちんと整列、オートフィル・モード みてはいかが ? もっともっと細かい技もあるので宝探しのつもりで挑んで 細かい技の紹介は、これでとりあえす終りです。でも、 展開されるようになります。 これで、次からは、、 ex く SPC 〉〃と打っと、、 expand" と を実行してください。 (C-c c-c) M-x edit-abbrevs-redefine / ヾッフアで、 てくれません。 Nemacs に知らせるためには *Abbrevs* た。でも、バッフアを編集しただけでは Nemacs は気づい フィル ( fill) = 埋める オート (auto)= 自動 しよう。直訳して、 ところでオートフィル・モードってどんなモードなので トフィル・モードです。 た。これから紹介するのは、几帳面な人ほど気に入るオー さて、いよいよ最後のマイナーモードの紹介になりまし 124 2 ) しかも、ちゃんとオートフィル・モードという名前まで るのはきっと、、 XXX-mode" コマンドだろう。 1 ) これまでの経験から推して、マイナーモードを有効にす ましよう。 験あるのみ。さっそく適当なバッフアを用意して試してみ ではちっとも日本語にならないし・・・・・。疑問に思ったら実 図ロオートフィル・モードの実行例 Once upon 3 time, a boy lived in Japan. HiS name IS Jugem jugem gokou no surikire kaigat 、 a suigyo no suigyo matsu ungyo matsu kuuneru tokoro ni u tOkO 「 0 paipo paipo paipo no syuuringaa syuuringaa no gurindai gurindai no ponpoko pii no ponpoko na no 彼の名前は・ 昔々あるところに一人の少年がおリました . 図田オートフィル・モードの実行例 ( 日本語 ) tyoukyuu mei no tyousuk んがのぐうりんだいく・うリんたいのまんばこびのんばこなのちょうきゅうめ まっくうねるところにすむところはいばばいばばいばのしゅうリんがしゅうり しゅげむしゅげむごこうのすリざれかいがらすいぎょのすいぎょまつうんぎょ フィル〃にちがいない。 いのろようすけー 出てきているのだから、、、 XXX" にあたるのは、、オート とまで考えつけは、もうあなたはだいぶ Nemacs に慣れ ている証拠。善は急げというので、 M-x auto-fill-mode を実行してみます ( 図 17 ) 。 (XXX Fi11) ノヾッフアのモ ードラインは、 となりましたか ? 英語 ( ローマ字 ) では分かりづらいかも しれませんが、 1 行が 70 文字に制限されています。日本語 機能なんだけど、 言ってしまえば、オートフィル・モードってこれだけの しょ ( 図 18 ) 。 で試してみれば一目瞭然。ほらね、文章の右端が揃ったで 、、 400 字詰め原稿用紙 10 枚にまとめて・・・ た 〃と依頼され ・日本語の変換行が長すぎて、自分で改行を入れる ( 図 19 ) UNIX MAGAZINE 1991.5

5. UNIX MAGAZINE 1991年5月号

ennacs 入門 図図 list-abbrevs コマンドの実彳テ伊」 1 この文章は abbreviation モードの例です . 2 モードラインを見て下さい . 3 4 ( Fundamenta 1 Abbrev) 5 6 と表示されています。 "Abbrev" は 7 「このバッフアは Abbrev マイナーモードたよ」 ( 1 i sp-mode-ab ト「eマーいb le ) (text-mode-abbrev-tab 1 e ) (c-mode—abbrev-table) 8 という意味て abbreviation• 0 (global-abbrev-table) (fundamenta l-mode-abbrev-tabl e ) ト、いい : するとい abbreviation 〃に対応する省略形を訊ねられる ので、ヾ a 〃と指定してください。 GIobal abbrev for ” abbreviation ” これで、次回から、、 a く SPC 〉〃と入力するだけで定義した 文字列、、 abbreviation" に展開されます。 次に、省略形が正しく定義できたかどうかを調べてみま 0 "abbreviation' 略形が表示されます。 を実行してください。図 14 のように、さきほど定義した省 M-x list-abbrevs しよう。 形を定義したときには定義行も複数できることになります。 この例では 1 つしか定義しませんでしたが、複数の省略 は次のとおりです。 1 行には 3 個のフィールドがありますが、それぞれの意味 "abbreviation' 0 省略形 この省略形を使った回数 展開後の文字列 省略形を展開する方法についてはすでに説明したので、 となりますよね。ヾああもう、ぶつぶつ〃なんてつぶやきな abbreviationC] うと、 、、 abstract" のつもりで間違えてく SPC>" と打ってしま 今度は展開しない方法についてお話ししましよう。 がらバックスペースで修正してもいいのですが、 とつ、 122 こはひ M-x unexpand-abbrev コマンドを使ってください。展開された文字列がもとの文 字列 ( 、、 a く SPC>") に戻ります。 でも、標準の設定では unexpand-abbrev コマンド用の 簡単なキーバインドが用意されていないので、残念ながら バックスペースで修正するのとどっこいどっこいというと ころですね。 さて、上の例はたんなる失敗なので修正すればすむので すが、しつはもっと困った場面にでくわすこともあります。 ThiS iS pen. と入力してみてください。こともあろうに、 This is abbreviation pen. になってしまいます。これではどうしようもありませんね。 This is aa pen ロ と書いてから修正したり、アプレビエーション・モードを いったん終了して、、 a 〃だけ入力することもできますが、こ れはどちらかといえば邪道です。そもそも、、 a 〃なんて簡単 すぎる省略形をつけたはうが悪いといえばそれまでですが、 展開しない方法もちゃんと用意されているので紹介して おきましよう。 昔々の記憶をたどって、 quoted-insert (C-q) コマンド を思い出してください。これは、本来 L などのコントロー ル文字をファイル中に埋め込むために使われるコマンドで すが、今回のような状況でも利用できます。 a C-q と入力してみてください。今度は、、 a 〃が展開されませんで した。メデタシ、メデタシ。 さて、せつかくせっせと省略形を定義しても、このまま ではエデイタを終了したときにすっかり忘れられてしまい、 次回は初めから定義しなおす羽目に陥ってしまいます。そ こで登場するのが、省略形の保存コマンドです。 M-x write-abbrev-file を実行してください。 UNIX MAGAZINE 1991.5

6. UNIX MAGAZINE 1991年5月号

図に日本語のアプレビエーション 日本語の文章は単語を単位として分かれていない。 仕方がないので、区点や読点、特殊な記号を 単語の区切りとみなします。 に動いてくれません。 語のアプレビエーションに慣れるまでに、まだまだ時間が ひとかたまりの単語とみなしているのです。うーん、日本 と展開されます。・・・・・・つてことは、 Nemacs はそれぞれを 単語の→単位として→単語を すると、 図 12 の例を使って dabbrev-expand を連続的に実行 アプレビエーション・モード かかりそう。 UNIX MAGAZINE 1991.5 これからしばらくは、アプレピエーション・モードの話 ます。 にしておかないとあとで大騒ぎすることになってしまい ただし、簡単に展開できるぶん、逆に覚えやすい省略形 スキー文字 (" $ 〃と、、 % 〃を除く ) や日本語の文字です。 ピリオド、カンマをはしめとするアルファベット以外のア す。このような区切り文字となるのは、スペース、タブ、 し位置で、区切り文字、アを入力しても正しく展開されま を実行してください。期待どおりに展開されたでしよ。同 (C-x , ) M-x expand-abbrev まで書いてから、 (Fundamental いるものとして、 4 行目の、 キーワード、、 a げに対して文字列、、 abbrev" が登録されて の 2 種類があります。図 13 の文章で実験してみましよう。 2 ) 、、区切り文字〃を入力する 1 ) コマンドを実行する 力されたら文字列へ展開します。文字列の展開方法には、 ドではキーワードと文字列の組を登録し、キーワードが入 マイナーモードの 1 つであるアプレピエーション・モー emacs 入門 /,へし/ N 6 と表示されています。 "Abbrev" は 5 (Fundamental Abbrev) 4 2 モードラインを見て下さい。 1 この文章は abbreviation モ 図ロアプレビエーション・モードの例 ードの例てす . 7 「このバッフアは Abbrev マイナーモードたよ」 8 という意味てす。 にひたることにしましよう。ます、アプレビエー モードへの入り方ですが、 M-x abbrev-mode 3 に : 1 ーデ - ン - ョン・ と宣言してください。図 13 のモードラインのように (XXXX abbrev) 単語の省略形を定義するには、 add-globa ト abbrev コ ン・モードが ON になっているかを確かめてください。 で、実際に試してみる場合にはちゃんとアプレピエーショ べてアプレピエーション・モードでしか力を発揮しないの 行き来できます。さて、これから説明するコマンド類はす は、普通のモードとアプレビエーション・モードを自由に となります。このように、 abbrev-mode コマンドを使え (XXXX) すると、今度はアプレピエーション・モードを抜けて、 ます。この状態でもう 1 度 abbrev-mode コマンドを実行 ただし、 XXXX の部分にはメジャーモード名が表示され と表示され、アプレビエーション・モードになりました。 マンドを使います。たとえば、 abbreviationü ルを移動させ、 a → abbrevxation の展開を定義するには、展開したい文字列の直後にカーソ (C-x + ) M-x add-global-abbrev add-global-abbrev コマンドを実行します。 121

7. UNIX MAGAZINE 1991年5月号

emacs 入門 . //\/ N 図 3 インサート・モードで文字を入力した場合 お名前 図 4 オーバーライト・モードで文字を入力した場合 : ぎーちゃん一 種族 誕生日 お名前 種族 誕生日 種族 あら不思議、びったり収まって表の枠がすれないところが 憎いですね ( 図 4 ) 。 名前から察しがついたと思いますが、 overwrite-mode コマンドは入力された文字をオーバーライト ( 重ね書き ) するモードに入るコマンドです。図 4 のモードラインに注 目してください。 (Fundamenta1 Ovwrt) となっていますが、後半の Ovwrt は、、このバッフアはオー バーライト・モードだよ〃と主張しています。 さて、オーバーライト・モードの動きは理解できたし、 このモードに移行する方法も分かりましたが、 「それしゃあ、これまで使っていたのはいったいどういう とか、 モードだったの ? 」 UNIX MAGAZINE 1991.5 write-mode コマンドを実行するたびにインサート・モー モードでなければインサート・モードだな〃と解釈し、 over - としか表小されていません。 Nemacs はヾオーバーライト・ (Fundamenta1) ように、インサート・モードでは、 1 度実行する」です。図 3 のモードラインを見れば分かる 2 番目の疑問の答は「 overwrite-mode コマンドをもう よく見ると挿入した文字ぶんだけ枠の線がすれています。 文字を挿入します。図 3 では分かりにくいのですが、よく ばれていて、カーソル位置の文字を後ろへ押しのけて入力 通常の入力モードは一般にヾインサート・モード〃と呼 なんて疑間が湧いてきますよね。 「今までのモードへはどうやって戻せばいいの ? 」 図 5 最初のカーソ丿立置 お名前 誕生日 ドとオーバーライト・モードを切り替えます。 これまで説明してきたオーバーライト・モードやインサ ート・モードはこの節のテーマの、、マイナーモード〃の 1 つで、 Fundamental モードや C モードのようなメジャー モードとは別に ( 同時に ) 指定することができます。つまり、 (Fundamenta1 Ovwrt) は、、、メジャーモードは Fundamental モードで、マイナー モードとしてオーバーライト・モードが宣言されている〃 という意味になります。 せつかく表の書き方を説明したので、もう 1 っ別の技を 紹介しましよう。もう 1 度、図 3 の表をご覧ください。最 (C-x c-n) M-x set-goal-column 初にカーソルを図 5 の場所に移動させるのですが、 (C-n) M-x next-line ごも兄〃と入力するために下の欄へ移動しますが、 を実行してから、、ぎーちゃん〃と入力します。次に、 117 カーソル位置に注目してください ) 。中央の欄や右端の欄を しいでしよ。 3 行目、 4 行目に移動しても同しです ( 図 6 の 行したカラムにカーソルが移動しました。ね、なかなか嬉 と打っと、図 6 のようにさきほど set ー goa ト co ⅳ mn を実

8. UNIX MAGAZINE 1991年5月号

図 23 toggle-egg-mode の起動 などの利点もあります。 ・ローマ字かな変換テープルが簡単に書ける ムヒ さっそく Egg を使ってみましよう。 Egg は、かな漢字変 VEgg 吏い方 Nemacs の変数 jserver-hos ト name Nemacs の変数 wnn-host-name ー ( jserver ) が起動されているホストを、 環境変数 JSERVER を使って判断します。もしこれらの値が設定されていなけ れは、 Nemacs を起動したホストへ接続しようとします。 jserver が動いている計算機のホスト名が、、 kanjihost" の ernacs 入門 l/A\v/ N : ぼうすかひょうふにぼうすのえをしようすにかいた一 図 24 Egg て字入力した状態 ゝ場合には、 M-X eval—expressxon Nemacs 変数は毎回設定しなくても /. emacs に、 を設定してから Nemacs を起動してください。もちろん、 を実行してから Egg モードへ入るか、環境変数 JSERVER Eval: (setq jserver—host—name "kanj ihost") のときに、 かな漢字変換サーバーの設定が不適切だと、最初の変換 と書いておけは万全です。 (setq jserver—host—name "kanjihost") あるいは、 (setq wnn—host—name "kanj ihost") KKCP : 原因 : open-fail て (KKCP: server-open "kanjihost" "ara") に失敗しました。 というエラーメッセージが表示されます。こうなってしま ってから、あわてて wnn-host-name や jserver-host- name を設定してももう手遅れです。こんなときには、 M-X set—wnn—host—name HOSt name: kanJ ihost を実行してください。このコマンドは、 I) 内部的に保存しているエラーフラグをクリアする 2 ) すでに jserver と接続していれは、その接続を切る 3 ) 指定されたサーバーに接続する という処理をおこないます。 jse Ⅳ er のホストが設定できたら、いよいよ Egg の起動 UNIX MAGAZINE 1991.5 です。ます、 M-x toggle-egg-mode ( 図 23 ) 。この、 [ a あ ] と入力してください。モードラインの左端が変化しました した文字列が表示されます。この文字列をかな漢字変換す 入力すれば、図 24 のように一とーで囲まれた部分に入力 な変換で入力しますよ〃という印です。あとはローマ字を というマークは、、かな漢字変換ができますよ。ローマ字か るには、 127

9. UNIX MAGAZINE 1991年5月号

Daemons and Dragons および sprintf などが含まれる。 ている。これらには、 crypt 、 index 、 rindex 、 length 、 substr 'salt' 次に示すプログラムの一部は、これらの関数を用いた例 print crypt($a, "uB") . Random String である。 "uB" is the print index()a , print rindex($a, print length($a) . print substr($a, print substr($a, print sprintf ( " ◆実行結果 uBH404BJIJZ6g 2 11 13 and andom String 1 , 99999 ) . " \ れ " 五 7 、 s こ ' がな at 2 last ツ ' な観 7 プ 可んなノ 3 3 charactet 、 s s 7 、〃 9 0 め charactet 、 7 7 ℃ s こ可 c ん arac 7 、 s —Random String— この例のなかで、すこしひねくれているのが substr で ある。 $ [ がリセットされないかぎり、最初の文字は 0 番に 対応する。もし ( 2 つ目の引数で ) 負のオフセットが指定さ れると、 substr は文字列の最後から数え始める。もっとも 便利なのは、 substr が左辺値として使えて、それを等号の 左側に代入できる点である。もちろん、指定された長さよ りも短い文字列を代入することも可能で、この場合は最終 結果の文字列は短くなる。これとは逆に長い文字列を代入 した場合、結果は長くなる。長さを一定にするには、 sprintf などの関数を組み合わせて使えはよい。 システムコール perl では、新たなプロセスを生成する時間を節約するた め、組込み関数として標準的なファイル操作のシステムコ ールをいくつかサポートしている。これらのなかには、 mkdir 、 rmdir 、 chmod 、 chown, link 、 symlink ( サホ ートされていないものもある ) 、 stat 、 rename 、 unlink な どが含まれる。次に挙げるのは、これらのシステムコール の使用例である (symlink を含む ) 。 rmdir "/tmp/foo" mkdir ("/tmp/foo" , 0775 ) ; UNIX MAGAZINE 1991.5 $count = chmod 0755 , " f00 " print " I changed $count modes\n $count = chown 28 , 5 , ' f00 ' , 'bar' ・ # numerical uid gid print changed $count uid/gid's\n' link("/tmp/oldfile" "/tmp/newfile") ; sym1ink("/tmp/oIdfi1e2" "/tmp/newfilel") ; ($dev,$ino,$mode,$nlink,$uid, $gid,$rdev,$size,$atime,$mtime, $ctime,$blksize,$blocks) = stat ($filename) , # stat can aISO use filehandles for its argument @line = grep (/${user} : / , @passwd) ; close (PASS); @passwd = く PASS> ; ー die "Can't open passwd: $ ! \ Ⅱ” open(PASS, '/etc/passvd' ) "kolstad" ・ $user の番号を調べることはそれほど難しくはない。 もちろん、 chown のためにグループ ID とユーサー ID print "l removed $count files\n ” f11e3 " " f 土 1e2 " $count = unlink " f 土 1e1 " "nevfilename") ; rename ( "oldfilename 89 連想配列の値をセットすることができ、それはあたかも魔 ァイルに対して書込みのアクセス権をもっているならは、 トしていなければ、この関数は失敗する。あなたが dbm フ ではあるが、あなたのシステムが dbm や ndbm をサホー て新しいデータベース・ファイルが作られる。当然のこと ( umask によって変更された ) ファイル保護モードに従っ ァイルが存在しない場合は、 3 番目の引数で指定された かどうかを確認したいことがあるかもしれない。しかしフ 子 ( . dir や . pag ) はつけない。最初にファイルが存在する 2 番目の引数ではデータベースの名前を指定するが、拡張 ハンドラに似ているが、実際はそうではない odbmopen の された連想配列にバインドする。この連想配列はファイル たは ndbm のファイルを dbmopen の最初の引数で指定 単におこなえる機能がある。 dbmopen コールは、 dbm ま perl には、 dbm スタイルのファイルに対する操作が簡 dbm ファイル print ・ ${user}'s uid is ${uid} , gid is ${gid}\n" split(/:/, $ 1 洫 e [ 0 ] ) ; ($login,$pass ,$uid, $gid)

10. UNIX MAGAZINE 1991年5月号

インルン阡 新発売 公衆回線で 18 , 000bDS (PEP モード ) CPU68000 、 TMS.32() DSPf,#k0 公衆回線て・デ ータ圧縮を行なわずにモテ間スビード麕 , ()()()bps ・実質スルーブット凵 , ()()()bps を実現しました 8 モードのモテム機能を搭載 PEP モード、 CCITT V. 21 / BelI 103 (300bps) 、 CCITT V. 22/Bell 212A ( 1200bPS ) 、 CCITT V. 23 (1200/75bPS) 、 CCITT V. 22bis(2400bps) 、 CCITT V. 32 ( 9600 / 4800bPS ) の 8 モードをサポートしています。 タイアル八ックアップ 専用回線から公衆回線への自動切換及び自動復 帰機能をサポートしています。 セキュリティ機能 コールバック及びバスワードによるセキュリテ ィ機能をサポートしています。 非同期 / 同期通信に対応 完全な同期トランスペアレント伝送が可能。 BSC 、 HDLC 、 DDCMP などの同期通信にも対応 します。 オートダイアリングコマンド ー BM4941 及び V. 25bis ダイアリングコマンドをサポ ートしています。 1 % 工ラーフリー伝送 18 , ()()()bps の高速モードて、は PEP 、 V. 32 ( 9 ,600bps) や低速モードて・は V. 42 、 MNP クラス 4 により 川 0 % 工ラーフリ ーな伝送を行ないます。 テータ圧縮機能 18 , ()()()bps の高速モードては PEP ( レンベル ・ジプアルゴリズ、ム ) 、 V. 32 ( 9 , 6()()bps ) や低速モードて・は V. 42bis 、 MNP クラス 5 による データ圧縮が可能て・す。 UNIX IJUCP に対応 高速 PEP モードて、は、従来通り UNIXUUCP 、 Kermit 、 X modem 、 Y modem および SNA/SDLC プロトコルをサポートします。 TCP/S 凵 P V. 32 を搭載したことにより TCP/SLIP のフロトコ ルて、の使用が可能。 Ethernet 間て・の高速通信に対 応します。 広範囲な自己診断機能 LDL 、 LAL 、 RDL テストが可能て、す。 0 0 2 2 こ群を 'IT,LEBIT 725 佖ル 第 T2 圓 0 / T2500 / T2500L の比較表 プロトコル オートダイアリ 工ラー - データ圧綰 非同期・同期 規格 サポート コレクション ングコマンド 非同期 同期 公衆回線 4 線式ダイアル 低速モード高速モード PEP UNIX UUCP PEP A T コマンド V. 32 V. 32 IBM kermit 49 2 線式専用回線バックアッフ テレビット HDLC V. 22 V. 幻 PEP2 V. 32 V. 42 CRC V. 42 LemPel X modem 拡張 ヒ・ツト SD LC BYSYNC V. 22 V. 23 MNP4 bis -Ziv V. 25bis 専用回線 & 自動復帰 コマンド Y modem MNP5 DCCMP bis 〇 〇 0 〇 〇 〇 〇 〇 〇 〇 T20 圓 T2500 ( こ ) ( こ ) 〇〇 〇 〇 〇 〇 〇 〇 0 〇〇 〇〇〇 〇 〇 〇〇 〇〇 〇 〇 0 〇 〇 0 〇〇 0 〇〇〇 〇 0 〇 0 〇 2500L トレイルプレイザー T2000 ( YI 78 , 00 の、 T2500 ( Y218 00 の、集合型モテム T9000 もございます。 スワイヤトランステック 1 e ⅵ Group 〒東京都千代田区 - 番町 14 スワイヤハウス TEL 昭 0 ) 9333 値通 ) 資料請求 N 。 .053 回線 セキュリティ リモート診断 コールバック / 、スワード リモート L D L セキュリテイセキュリティ アクセス L A L R D L ・お問い合わせ、詳細については・輸入元・販売総代理店