Nemacs - みる会図書館


検索対象: UNIX MAGAZINE 1990年9月号
27件見つかりました。

1. UNIX MAGAZINE 1990年9月号

emacs 入門 図 7 c - 旧を入力したときの画面表示 (Fundamenta1 ) -—Top-- [JJJ—] -- ” file) 図 8 c-h c-h C-h を実行した光態 You have typed C-h. the help character. Type a HeIp option: 注意 日吾 GYUEÅACS(YEmacs) この入門編は、「習うより慣れろ」をモットーに作成されていま す . 行の ~ ) 、、 - は、そ帯可をすべきかを示しています . cs のコマンドを入力するときには、一般的にコントロール・キー ( キー トツアに、 CTRL あるいは、 CTL と書いてある ) やメタ・キー ( 普通、 工スケーア・ C-h C-v C-h C-c C-h C-d C-h t C-h T C-h ー ー ] ————-NEnacs : N 日 {A ( . tut ] ÄNEmacs : •He1p• Type C-x ー to 代劇” help vindov. 図 9 lnvitation Å B C ド L S ↑ (Fundamenta1)——A11 00 nd - ap 「 OPOS. Give a subs い朝 & and 3 託 a list of 00 nds (functions interactively callable) that contain that substring. See also the ap 【 0P03 00 nd. describe-bindings. DispIay table of all key bindings. describe-key-briefly. Type a connd key sequence; it prints the function that sequence runs. describe-function. Type a function 厩 and get docuæntation 0 子れ . infO. The info docunzntation reader. describe-key. Type a key sequence; it displays the full docuæntation. viev—lossage. Shovs last 0 characters you typed. describe-mde. print 0 { current . jo 【 mde. vhich describes the 00- nds peculiar to it. ShOVS e 国 03 file. vtev-emcs-nevs. describe-syntax. Display contents of 3 川 t table. us explanations help-vith-tutorial. SeIect the Emcs learn-by-doing tutorial. describe-variable. Type naæ of a variable. it displays the 【 iab ・ 3 docuæntation and value. e 代 - is. Type 00 nd naæ; れ prints vhich keystrokes in マ 0 that cotnnd. (Fundamenta1)--Top--[-JJ-] 人 B C P ー K L ーー S T ー c-c C-d c-n C-v or space to sc 印Ⅱ : 図田ファイルを辛見作成した光態 NOW, 1et ' s enjoy nemacs. gives you a new envlronment , a comfortable one (I hope) . かって図 9 のとおり入力するだけです。新しい行へは 図 10 のような画面が現れたでしよう。あとは、端末に向 % nemacs lnvitation します。 ます、、、 lnvitation" というファイル名で Nemacs を起動 編集です。さっそく図 9 のファイルを作ってみましよう。 無事に Nemacs を起動できたら、いよいよファイルの カーソル移動に挑戦 0 きますが、もっと具体的な話は必要が生したときにしまし これらのほかにコマンドの一覧やドキュメントも表示で れについての簡単な説明が表示されます ( 図 8 ) 。 がお勧めです。ヘルフ機能のオプションの一覧と、それぞ C-h C-h C-h 合は、 、、はかにどんなヘルフ機能があるのかな ? 〃と思った場 したかが判断できます。 わけが分からなくなってしまったときでも、どのキーを押 で遡って表示されます。これで、何かへんなキーを押して のようにこれまでに入力したキーが最大 100 文字ぶんま 122 く RET 〉キーを押して移動します。 ] : lnvitation (Fundamenta1)--A11--[-JJ-]- このくらいの長さなら、あまり間違えないかもしれませ ん。でも、素直に書けてしまってはエデイタの利点が活か せなくて残念ですね。ということで、せつかくですから 1 ル移動のコマンドの登場です。 、、 kemacs" を、、 nemacs" に修正します。 と、間違えてください。この状態からカーソルを戻して、 NOW, let ' s e れ」 oy kemacs . 行目を、 こで、カーソ C-b カーソルの位置を 1 文字前へ移動させる なので、とりあえす C ー b を 7 回入力してカーソルを、、 k 〃 C-d カーソルの位置にある文字を消す 置にある文字は、、 e 〃になります。 こで、 C ー d を入力すると、、 k 〃が消えてカーソルの位 No , let ' s enJOY @emacs. の上に移動させます。 UNIX MAGAZINE 1990.9

2. UNIX MAGAZINE 1990年9月号

emaCS 入門 があり、ⅵ系にはⅵ、 jvi 、 jstevie などがあります。ま た、 Emacs 系のものにはここで紹介する Nemacs(GNU は、コントロールキーと、、 A クのキーを同時に押すことを意 Emacs) のほか、 jove 、 MicroEMACS 、 kemacs などか 味します。 A" と表記されることもあります。文字 ( 上の あります。 ⅵは、 UNIX 標準のスクリーンエデイタです。 C のプロ 例では A ) は、大文字でも小文字でもかまいません。また、 グラムを書くのに都合よくできているので UN Ⅸプログ M 一文字 ラマーのあいだではファンが多いのですが、残念ながら日 は、メタキ—CMETA" と書かれたキー ) と文字のキーを 本語が扱えません。そこで、ⅵで日本語を扱えるようにし たのが jvi です。日本製の UNIX マシンのⅵも、実際に を同時に押すことを意味します。 は jvi であることが多いようです。 jstevie はつい最近 M-A PDS (PubIic Domain Software) として配られたもので、 かなりよくできたⅵ系の日本語工デイタです。しかも、ソ では、、、 META" キーと、、 A 〃を同時に押します。ただし、 キーポードによってはメタキーがなかったり、たとえあっ ースが入手できるので自分の使っている計算機に移植でき る点も大きな魅力です。 ても使えな 0 、場合があります : そんなときには、 = スケー プキー ( 、、 Escape" あるいは ESC' と書かれたキー ) が代 Emacs はもともとは UNIX 上のエデイタではなかっ わりに使えます。ただしェスケープキーで代用する場合に たのですが、 OS の垣根を越えて多くのファンを集め、いっ は、 ESC キーを押していったん離してから文字を入力して のまにか UNIX 上で動く Emacs も増えてきました。 GNU Emacs 以外にも、次のようなものが PDS として配 ください。、、 M ー A 〃は、 布されています。 ESC A jove: 漢字が使えす、エデイタとしての機能も少ないがと と続けて入力すれば代用できます。 ても負荷が軽い。 このほかに MicroEMACS : jove とはちょっと趣の異なる Emacs く CR> は リターンキー で、やはり漢字は使えす機能も少ないが負荷は軽い。 は ラインフィ ードキー く LF 〉 kemacs : 工デイタとしての機能は小さいが、漢字が使え は デリートキー く DEL 〉 て負荷も軽い。 MicroEmacs を日本語化したもの。 く TAB 〉 は タブキー GNU Emacs や Nemacs も、その名のとおり Emacs を意味しているとします。 系のエデイタです。 コマンド表記のための約束事 さて、これから編集のためのコマンドがいくつも出てき もちろん端木の前まで連れていっ って訊かれたら・・・ て「さあ使ってみて」って言うでしようね。そもそもエデ ますが、キー入力に関して表記上の約束事を決めておきま イタを使いたけれは、 C 一文字 ・ファイルの読込みと保存 は、コントロールキー ( 、℃ ontrol 〃あるいは、℃ TRL" と ・カーソルの移動 書かれたキー ) と文字のキーを同時に押すことを意味しま ・文字の挿入と削除 す。たとえば、 C-A 覚えるための早道は ? 118 UNIX MAGAZINE 1990.9

3. UNIX MAGAZINE 1990年9月号

え覚えていれば、なんとかなるもの。そこで、しばらく は、、実践 Nemacs 講座〃に変更です。 起動さえすればこっちのもの とりあえす、はしめてこのエデイタに触る人のためにい ちはん簡単な使い方から始めましよう。端末に向かって、 % nemacs と打ってください。これで Nemacs が起動します。すこし 待っていると ( 遅い計算機ではだいぶ待たなくちゃなりま せんが ) 、メッセージが表示されて使える状態になります。 もう 1 つは、起動時にファイル名を指定する方法です。 さっきは何も指定せすに、、 nemacs 〃とだけ入力しました。 今度はコマンド名の後にファイル名を指定してみましよう。 % nemacs ファイ丿レ名 、、ファイル名クは、カレントディレクトリからの相対パス あるいは絶対パスで指定します。たとえば、 % nemacs MyFi1e なら、カレントディレクトリにある、、 MyFiIe 〃の編集を始 めますし、 % nemacs /tmp/YourFi1e とすれは、、、 /tmp" ディレクトリにある、、 YourFile 〃の編 ・すでに存在するファイルの編集 ・新しいファイルの作成 ワープロに慣れてしまっている人のなかには、 集を開始します 2 。 UNIX MAGAZINE 1990.9 交渉してくださいね。 う題の本を捜してください。もちろん、買うか並ち読みするかはお財市さんと いる人に訊くか、本屋さんで "UN IX 入門第はしめてのゆにつくすをなどとい 2 や相対パス〃、、絶対パス〃を知らない人は・・・・・・えーっと、こめんなさい。そはに きは、あわてすさわがす、 せたらいいか分からないというのはよくある話。そんなと ところで、 Nemacs を起動したもののどうやって終了さ を指定すると、新しいファイルが作られるだけです。 ではとくに区別はありません。存在しないファイルの名前 の 2 つの操作があると信している人もいますが、 Nemacs emacs 入門 //\し/ N C-x C-c と打ってください。あとは、何を訊かれてもとりあえす yes と答えていけは脱出できます ( 詳しい話はまた今度 ) 。 あれあれ、起動しないよ えつ、起動しませんか ? 運が悪いのか、日ごろのおこな いのせいかなんて悩んでも仕方がないので、チェック・ホ イントを挙げておきます。あとは自力更生してくださいね。 た設定ファイルがあると正しく起動しないこともありま Emacs(Nemacs) の初期設定ファイルの名前です。誤っ というファイルがありませんか ? . emacs とは、 GNU ホームディレクトリの下に、身におほえのない、、 . emacs 4. 誤った設疋ファイルをもっていませんか ? すパスを調べてみましよう。 もよくあります。隣の人が使っているようだったら、ま つはコマンドがパスに入っていなかっただけということ nemacs が使えない !! って大騒ぎしておきながら、し 3. 設定しているパスに nemacs か入っていますか ? か ? これまた、スーパーユーサーに訊ねてください。 るいは、、 nemacs ー 3. のような名前になってはいません あなたのサイトでは、コマンド名が、、 emacs ー 18.55 〃あ 2. コマンド名か違っていませんか ? 要です。 なんていわれるかもしれませんから、ちょっと勇気が必 ストールして」 んだよね。はい、ソースとディスクをあげるから、イン 「ああ、ちょうどよかった。人手が足りなくて困ってた ていますか〃と訊いてみてください。ただし、その結果、 ば、スーパーユーサーに、、 Nemacs はインストールされ ん 3 。周囲で誰も Nemacs を使っている気配がなけれ Nemacs は UNIX 標準のソフトウェアではありませ ますか ? 1. あなたのサイトでは、 Nemacs がちゃんと用意されてい 3 計算機によってはオプショナル・ソフトウェアとして付属していることもあり す。 ます。 119

4. UNIX MAGAZINE 1990年9月号

図 28 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 emacs 入門 . emacs のサンプ丿レ (display-time) (global-set-key " \ \ \ \ " 'help-for-help) (global-set-key " \ \ \ " 'help-command) (global-set-key "\AH" 'delete-backward-char) lndent at 10 Ⅱ (setq c-indent-level 8 ) (setq c-label-offset ー 4 ) (setq mh-lib "/usr/local/lib/mh/") (setq mh-progs "/usr/local/mh/" ) For MH Command (setq auto—mode-alist (cons ' ("\\. g$ (load "gload") (load "g—mode") For G—code (setq mh-summary-height 8 ) For C 1 行目 : モードラインに時刻を表示させます。 2 ー 4 行目 : キーノくインドを変更しています。 2 行目 : 1 文字削除のコマンドを c-h に割り当てます。 3 行目 : ヘルプコマンドを c-\ に割り当てます。 4 行目 : help-for-help を C-\ C-\ に割り当てます。 5 ー 7 行目 : です。 ”で始まる行は Emacs Lisp のコメント行 g-mode) auto—mode—alist) ) 9 行目 : C のプログラムに対してラベルがきた場合には、イ ンデントを 4 文字浅くします。 13 - 14 行目 : 外部フ。ログラム MH (PDS のメールコマン ド ) を呼び出すために必要なパスを設定しています。 19 ー 21 行目 : 標準の Nemacs が知らないメジャーモード を利用するために、起動するときに Nemacs の Lisp ラ イプラリをロードして新しいメジャーモードを登録して います。 8 行目 : C のフ。ログラムに対してインデントの深さを 8 文 字に設定しています。 初期設定ファイル Nemacs は起動時に初期設定ファイルを読み、そのファ イルの設定を実行します。さきはども触れましたが、初期 設定ファイルの名前は、、 . emacs 〃で自分のホームディレク トリの下に置きます。このファイルがなくても Nemacs は起動しますが、お勧めなのは使いやすい環境をもってい る人から . emacs をコピーさせてもらうことです。 一日勺に誰かの環境を使ってみたいときは、 Nemacs の 起動時に次のようにヾ誰それの初期設定ファイルの設定を 使うクと宣言します。 % nemacs -u ユーザー名 自分専用の初期設定ファイルを作りたい人のために、簡 単な . emacs を紹介しましよう。図 28 を見てください。 のファイルは Emacs Lisp で書かれています。ここでは UNIX MAGAZINE 1990.9 Emacs Lisp には触れませんが、図中にそれぞれのの 意味を書いておきます。 ここに挙げた例は ( 後半部が ) きわめて特殊なので、あな たのサイトでこのまま利用することはできないと思います。 ですから、、、こんな感し〃という程度に考えてください。 はエデイタの処理を途中で中断するコマンドですか、 C-g 数の指定などをおこないます。たとえば、 まざまなメッセージや M ー x で指定した関数名の入力、引 工デイタの最下行は、、エコー領域〃と呼はれる行で、 工コー領域 この さ キーを入力すると現在処理中の操作、あるいは先行して入 にエコー領域に 力したすべてのキー入力を無効にします。このとき、同時 133

5. UNIX MAGAZINE 1990年9月号

・・・つて昔の人は詠ったけど、この状況しやそんな優雅 なことなど言っちゃいられない。そりや、清少納言さんが 「紫だちたる雲のほそくたなびきたる」なんて朝焼けに感動 した気持ち、分かるわよ、私だって。 ( 春しゃないけど ) い ま見てるもの、徹夜あけの眠たい目で・・・ でも、こっち はこの原稿を仕上げなきゃ曙どころか夕暮れになってしま いそうで必死。こんなときに Nemacs の 1 つもあれはも っとさっさと書けるのに、ぶちぶち 1 。 ん一、どうものつけから不機嫌でごめんなさい。だけど、 昔っから大工はカンナが命っていうでしよ。プログラマー も道具 ( ツール ) が命。不自由なエデイタしや、筆 ( キーポー ド ) が進まない。とはいえ、いつまでも文旬はかりいっては いられません。私の使命は Nemacs というエデイタを知 らない人、あるいは知っていても英語や残業の壁に阻まれ てドキュメントを読めない人に、、 Nemacs ってこんなに便 利なんだよ〃って知らせることなんですから。それにして も、 Nemacs の記事を書くためにマイコンのエデイタに向 かっているなんて・・・・・・ああ、不幸。 世の中広しといえど・・ なかなか気に入ったエデイタには出会えないものです。 個人的な好みでいえは、使いやすいエデイタの条件とは、 ・プログラムも日本語の文章も書ける ・なかなか使い方を覚えられないようなエデイタは嫌い ・やたらキーポードをたくさん叩かなくちゃいけないエデ イタも嫌い 1 意味不明だが、世間でいうやぶつぶっ〃にあたるらしい。 116 emacs 入門 春はあけほの 荒井美千子 ・ふだんと違う計算機、 OS を使ったときに今まで慣れ親 しんだ工デイタを使えなくなってしまうと悲しい などです。ところで、世の中に出回っているエデイタを大 まかに分類すると、 ・ラインエデイタ ・スクリーンエデイタ ・それ以外 ( マイコンの BASIC のエデイタなど ) の 3 種類がありますが、 ・ラインエデイタは非人間的 ・それ以外のエデイタは一般的でない ということで、やはりふだん使うのはスクリーンエデイタ でしょっ。ここで紹介する Nemacs は UNIX 上のスクリ ーンエデイタで、 GNU macs というエデイタを日本語 化したものです。各種の機能も日本語にあわせて拡張され ていますが、基本的にはオリジナルの GNU Emacs と同 しです。具体的な説明に入る前に、これらのエデイタが作 られた背景を紹介しておきましよう。 米国に住んでいる伝説の人 Richard M. Stallman さ んは、ある日「プログラムは無償で配るもんだ ! 」って叫 んで、実際に次々とソフトウェアを作って無償で配布を始 めました。その結果、彼の作ったソフトウェアが大量に太 平洋を渡って日本にも届くようになりました。しかも、 Stallman さんが書いたプログラムは質が高いうえに移植 性に優れていたので、多くの人が使うようになったのです。 そのなかの 1 っーー - GNU Emacs と呼ばれるエデイタが、 今回紹介する Nemacs の親分です。 GNU Emacs は非常 に出来がよくて多くのファンがついたのですが、なにしろ UNIX MAGAZINE 1990.9

6. UNIX MAGAZINE 1990年9月号

emaCS 入門 図 2 WARRANTY の表示 (C-h C-w) R 題訂 BECÅUSE GYU EÅACS LICEISED FREE 0F CHÅRGE. PROVIDE ÅBSOLÜTELY R 財町 Y. T0 THE EXTEYT PEUIITED BY ÅPPLICÅBLE STÅTE L . EXCEPT 日 OTHERVISE STÅTED はは G. FREE SOFTVÅRE P0 肭科 0 は C. 引 C 朋 ST 乢はÅID/OR OTHER PÅRTIES PROVIDE GjU EIÅCS "ÅS ・ 引 0 膩 R 灯 Y 0F ÅIY 【は 0. EITHER EXPRESSED 0R P 凵 ED. は CL 圓は G. BUT i0T 凵嗣 TED T0. THE P 凵 ED 狐 R 町 S 0 ド RC Å田凵買 0 FITYESS FOR Å PÅTICULÅR PURPOSE. THE EYTIRF S 【ÅS T0 THE 0 い買 SHOU 鬪 THE GiU EIÅCS 0 PERFORÅÅYCE 0F THE PROGRÅÅ引新 Y00. PROGRÅÅ PROVE DEFECTIVE. Y00 ÅSSUIE THE COST OF 乢 [ YECESSÅRY SE 鶯は G. REPÅIR 02 C0 EC 科 0 亂 E 訂 UiLESS REQUIRED BY ÅPPLICÅBLE LÅV 引し L FREE SOFNÅRE F0 0 灯間圧は C.. 引 C ST 乢 . 0 / ÅYY OTHER PÅTY 冊 0 ÅÅY DI ÅYD REDISTRIBUTE GYU EÅÅCS ÅS PEUITTED OVE. BE LIÅBLE T0 YOU F02 0 △ GB. は C Ⅲ 0 は G ÅIY LOST PROFITS. LOST ÅOÅIES, 0R OTHER SPECIÅL. は C 団 E 訂乢 0R C0 E E 町は L DÅIÅGES ÅRISIYG 0 膩 0F THE USE OR はÅ田凵買 T0 USE (IYCLUDIYG BUT 10T 凵 TED T0 LOSS 0F 物 0 を DATÅ BEING REiDERED IiÅCCURÅTE 0R LOSSES SUSTÅIÅED 胛 0 PÅTIES 0R Å FÅILURE 0F THE PROGRÅi T0 OPERÅTE 引囎 PROGRÅÅS ÅOT DISTRIBUTED 胛 PREE SOFNÅRE F0 DÅ . は C. ) THE P G 日 Y00 HÅVE BEEI ・ GNU Emacs を使っていて何か起きたときの保証につ いては、℃ー h C-w" を見てね。 ・著作権に関しては、℃ー h C-c 〃で分かるよ。 ・・・と叫びたくなる事態に陥ることもあるでしよう。そ ・再配布に関しては、℃ー h C-d" で表示されるよ。 んなときは、 Nemacs に用意されているいたれりつくせり ・チュートリアルを読みたけれは、℃ー h t" だからね。 のお助け機能を試してみる絶好の機会です。これには、 最後の 3 行は、 Nemacs を起動したときだけに表示され ・いわゆる HELP 機能 るメッセージです ( オリジナルの GNU Emacs では表示 、、掻いところに手が届ぐ的機能 されません ) 。 などがありますが、種類が多いうえにその場の状況にどの ◆ Nemacs のノヾージョン 機能が適しているのかが分かりにくいので、一度にはなか ◆ C-h T で日本語のチュートリアルを表示しますよ なか覚えきれないのが悩みの種です。そこで、今回は ◆ Nemacs ドキュメントのありか Nemacs を起動したときにアナウンスされる簡単な機能 を中心に説明し、残りの機能については必要に応してすこ 「あら、こんなファイル読み込んだ覚えはないのに。だい しすつお話しすることにしましよう。 たい、これってどこかのファイルを書き換えたりしないの ファイル名を指定せすに Nemacs を起動すると、起動 かしら ? 」なんて思った方、ご安心ください。メッセージ メッセージが画面に表示されます。ちょっと、私が使って は一時的に表示されているだけで、キーポードを叩くと、 いるバージョンの起動メッセージをお見せしましよう ( 図 ほら、もうファイルの編集が始まっています。 さっそく、起動メッセージにしたがって、 最初の 3 行は GNU Emacs のバージョン番号と作成さ C-h れた日時、著作権表示、それに、 と入力してみましよう。何も設定していなければ ( そしてス ・ HELP は、、 C ー h 〃だよ。 ーパーユーサーが親切すぎなけれは ) 、エデイタの最下行に ・書き換えた部分を undo するときは、℃ー x u" だよ。 C-h (Type ? for further options) と教えてくれています。 次の 3 行は、もうすこし細かい HELP コマンドの使い と表示されます。ここで表示にしたがって、、 ? 〃と入力する 方についての情報です。 と、もういちど最下行に A B C F I K L M N S T V W C-c C-d C-n C-w. Type C-h again for more help: 図ー Nemacs の起動画面 GYU Enncs 55 コ of Åon ム 90 on hip (berkeley-unix) Copyright (C) 88 Free S t ”代 Foundation. c. Type C-h fo 【 help; C-x u to 聞 do changes. ( ・ C - ・ tæans use CTRL y. ) GYU Erøcs coræs vith ÅBSOLUTELY RR 科 . type C-h C-v for full detai ls. You my give out copies Of Emcs; type C-h C-c to see the conditions. Type C-h C-d fO 「 inforrntion on getting the latest マ e 【 sion. Type C-h t 一 a tutorial on using を mcs. 国 03 version 3.2.3 of 89. 貶 . 22 Type C-h T for a Japanese tutorial on using 国 cs. For any Other Yemcs specific *. please read / 計月 ocal/ ⅱ b / 03 -3.2 / etc S. ? ? ? : *scratch* (Lisp Interaction)—-A11——[-JJ-]— ( F 聞 d e れ tal ト -83 % ー [ 」 JJ - ] - -—]——%%-NEnacs: COPYING 誰か助けて ! ! 0 120 UNIX MAGAZINE 1990.9

7. UNIX MAGAZINE 1990年9月号

emacs 入門 (C) -- A11 ーー [JJJ—] - ーい n ( 信 cto ⅱ引 ( - n l))))) ( ⅱ (: n 0 ) (defun factorial (n) (print factorial(n))) Wefun print-factorial (n) 図ロ分害揃の画面 : factorial . el (ünacs—Lisp) ーー A11 ー [JJJ—] 図円ウインドウごとに異なるファイルを表示 5 printf("XdYn• . factorial(n)) : n : atoi(argv[ll); int n; Char *targv,• int argc; min(argc. a【駆) include tdio. ト ー ( 第 n (factorial ( - n l))))) (i f ( : n 0 ) ()e fun fac to ri (n) (print factorial (n))) (defun print-factorial (n) ] : main. c -NEmacs : factorial . el (Enacs—Lisp)—A11——[JJJ-]— 図田水平分割した画面 wefun print-factorial (n) (print factorial(n))) (defun factorial (n) Ⅲ ( : n 0 ) ーい n (factorial ( - れ I))))) -- ] ———--Nhnacs : factorial . el (defun print-factorial (n) (print factorial(n))) (defun factorial (n) ( ⅱ (: n の ー ( 第れ (factorial ( - n —NEnacs : factorial . el return n•factorial(n-l); return l,• if (n int n; 信 ct0 ⅱ引 (n) printf("XdYn", 信 cto ⅱ引 (n)) : n : atoi(argv[ll); lnt n; Char int argc; min(argc, a 宿の 印 n 日 u tdio. 図 20 垂直分割した画面 main. C C-x 5 C-x 2 (ünacs-Lisp)--A11--(JJ 」 -]- (ünacs—Lisp)——A11—-[JJJ—]— ーい n (factorial ( - れ l))))) ()f ( : n 0 ) l(defun factorial (n) (print factorial (n))) l(defun print-factorial (n) -Nemacs: factorial . el— ウインドウ ん、いわゆるウインドウ・システムのそれとは違います。 このそれぞれの画面を、、ウインドウ〃と呼びます。もちろ 利用すれば編集中の複数のファイルを同時に表示できます。 Nemacs には画面を分割する機能がありますが、これを て端末工ミュレータをもう 1 っ開きますか ? 2 つ並べますか ? それとも、ウインドウ・システムを使っ 編集したい場合にはどうすれはいいのでしようか。端末を たとえば、さきほどの main. c を見ながら factorial.el を ときには 2 つのファイルを見比べながら編集したい 128 2 つのファイルを見比べながら編集するには、 では、ファイルは 1 つしか表小されていません。 を実行した際の Nemacs の起動時の画面です。この状態 % nemacs malli. C factorial . el 図 17 を見てください。これは、 を実行してください。 C-x 2 は M-x split-window- vertically とおなし動作で、画面を上下 2 つに分割します ( 図 18 ) 。その後、 C-x b く CR 〉 を実行すると、表示されていなかったほうのファイルが表 M ー x . p ! 当は 9 当こ be ! 塰 9 可国ツく C R 〉 または、 C-x 5 画面を左右に分割することもできます。これは、 示されます ( 図 19 ) 。 UNIX MAGAZINE 1990.9

8. UNIX MAGAZINE 1990年9月号

図に Nemacs の画面を構成する部品の名前 GYU Emcs 55 コ of Non Åpr 90 on hip (berkeley-unix) Copyright (C) 1988 Free Softvare Foundation, c. Type C-h for help; C-x u to undo changes. CC-' use CTRL key. ) GYU Fncs co 3 'ith S 此阯 Y Å訂 Y. type C-h C-v fo 「 full details. You my give out copies Of Emcs; type C-h C-c tO see the conditions. please read /usr/local/lib/nemcs-3. 2/etc/YFNÅCS. ? ? ? 事 For any Other Yemcs specific informtion, Type C-h T そ 0 「 a Japanese tutorial on using iemcs. 国 03 version 3.2.3 of 89 コ 2.22 Type C-h t for a 加 tO 「 i on using Emcs. C-h C-d fo 【 informtion on getting the latest マ e ion. ウインドウ ェコー領域 . •scratch* モードライン (Lisp lnteraction) ーー A11 ー - [—JJ—] C-x C-s があります。そう、 C-s を押した時点でキー入力が効かな を実行しても、フロー制御の関係でセープに失敗すること くなり、画面の表示も更新されなくなってしまう状態のこ を押せばキー入力はできるようになりますが、ファイルを C-q とです。そんな場合には、 でファイルをセープできます。 M-x save-buffer く CR> 困った・・・・なんて悩まなくても大丈夫。 にトライしてもまたまた同し目に遭うだけです。ふみふみ、 C-x C-s 保存しようと思ってふたたび、 UNIX MAGAZINE 1990.9 C-x C-s イルを書き込む操作〃は、 がついているのです。たとえば、さきはど出てきた、、ファ うか。しつは、 Nemacs では 1 つ 1 つの操作にすべて名前 はこれらの特殊なキーをどのように処理しているのでしょ トロール文字の列を入力しました。ところで、 Nemacs で カーソル移動やファイルの保存を実行するときは、コン っても、とくに難しい話ではないので読み飛はさないでね ) 。 めに、ちょっと Nemacs の内部を覗いてみましよう ( とい C-x C-s と M-x save-buffer との関係を説明するた emacs 入門 ,/へ、/ N フロー制御 フロー制御の機能を備えた端末では、 C-x C-s が効か ないことがあります。、、フロー制御〃の意味が分からない人 は、長いファイルを cat コマンドで表示したときのことを 思い出してください。おそらく、あなたの端末では C ー s を 押せば一日勺にスクロールが止まり、 C-q を押せは再びス クロールを開始するでしよう。このように、表示 ( 実際には 通信 ) を一時中断する機能がフロー制御です。 C-x C-s か機能しないときは、「関数名」の項を読んでください。 でしたが、これには、 125 で C-f と同し動きをします。 M-x forward-char く CR 〉 です。上で述べた forward-char ならは、 M-x 関数名く CR 〉 ちなみに関数名で指定する方法は、 入力した場合でも、同しように処理が進められるわけです。 で、コントロール文字列、関数名 ( コマンド名 ) のいすれを という順番で処理を進めます。このような仕組みのおかげ 3 . その関数で定義された処理をおこなう。 2. 関数名に対応する Lisp の関数定義を見つける。 1 . コントロール文字の組合せを関数名に変更する。 で、 Nemacs の内部では、 り、コマンド名は Lisp の関数名に対応しています。そこ Nemacs の処理の多くの部分は Lisp で記述されてお という名月リがついています。 foward-char ですが、これにも、 C-f れたように、、カーソルを 1 文字進める操作〃は、 という名前がついています。また、さきはどもちょっと触 save-buffer

9. UNIX MAGAZINE 1990年9月号

emacs 入門 図 23 Overwrite と Aut0 Fill モードを指定した画面 (C 0 、 rt F 土 11 ) ー - A11-- [JJJ] -- 代加 rn n•factorial(n-l); 加 rn l; factorial(n) printf("XdYn• . 信 ctori 引 (n)); n : atoi(argv[l]); int n; int argc; min(argc. argv) include ” tdio. ト : main. C ラベ丿レ : の形があったら C 言語のラベルが入力されたと思って、イ がきたらインデントを 1 段浅くします。 がきたらインデントを 1 段深くして、 Lisp モードでも同様で、 ンデントを半分前に出すといった処理をしてくれます。 挙げられます。通常、 Nemacs では文字を入力するとカー ードです。分かりやすい例としては、 Overwrite モードが マイナーモードは、もうすこし細かい動作を決定するモ 操作の不頁もメジャーモードによって異なります。 インデントばかりではなく、キーバインドや実行できる ソル位置に文字を挿入します。たとえば、カーソルが 図 24 kanji. text を読み込んだときの画面 emcs はヨに良く出来ている . ーバインドの変更や カスタマイズ LISP による新しいコマンドの作成が お手軽にできる . kanji. text となります。 (Text) ー AI トー [EJJ-I abc@efg の位置にあって、 abc@defg こで、、 X 〃を入力すると、 となります。ところが、バッフアのマイナーモードが Over - write モードなら、 ab c@e f g で X を入力すると、 abc@efg 130 1 つのバッフアに対しては、 1 種類のメジャーモードと 複数のマイナーモードが指定できます。マイナーモードが 複数指定されている場合には、ウインドウの最下行にマイ ナーモードが書き並べられます。図 23 は、複数のマイナー モード Overwirte と Auto FiII を指定した場合の例です。 モードライン モードラインはバッフアの状態を示す特殊な行で、ウィ ンドウのいちはん下に表示されます。 GNU Emacs のモ ードラインには、 ・ノヾッファ名 ・バッフアが変更されたかどうかのフラグ なども表示されます。 ・ egg を使用しているときの egg のモード ・漢字コードの種類 などが表示されますが、 Nemacs ではこれら以外に、 ・日付、時刻の表示 ・ノヾッフアの表ノバ範囲 ・ノヾッフアのモード UNIX MAGAZINE 1990.9 画面表示です。左端の、 図 24 は、 kanji ・ text を読み込んだときの Nemacs の ったファイル、、 kanji. text 〃を読み込んでみましよう。 Nemacs のモードラインの表小を見るために、漢字の入

10. UNIX MAGAZINE 1990年9月号

ernaCS 入門 Quit と表示されます。また、ファイルをセープしたときには、 Wrote /document/UNIMAGA/main. c ミニバッフアの入出力にもエコー領域が使 というメッセージをエコー領域に出力します。 これ以外に、 われます。 ヘルプ関係 ・今回出てきたコマンドの一覧 おわりに 今回は、 Nemacs の基本的な概念、機能を中心にお話し ( あらい・みちこ ASTEC) 指し、目的別の使い方を紹介していきたいと思います。 もしれません。次回からは、、頭を使わない Nemacs" を目 しましたが、お勉強的な感しになってしまって辛かったか M—x describe—no—warranty (C—h C—w) M-x describe—copying (C-h C-C) M—x describe—distribution (C—h C—d) M-x help-with-tutorial (c-h t) M—x help—with—tutorial—for—nemacs (C- M-x help-for—help く CR> C-h (C-h C-h カーソル移動 M x backword—char (C—b) x forwardchar (C-f) x previouse-line C-p) -x next-line (C-n) x backward-word (M-b) x forward-vord (M-f) x scroll-up (c-v) sc て 011 ー dow Ⅱ (M-v) x beginning-of-buffer x end-of-buffer (C->) M-x delete-char (C-d) 編集機能 ファイルの読込み / 書込み M-x find-file (C-x C-f) M-x find-file-read-only M—X list—buffers (C—x C—b) ウインドウに関するコマンド パッフアに関するコマンド M-x save-buffer (C-x C-s) M—x split—window—vertically (C -x 2 ) M-x split-window-horizontally (C-x 5 ) M-x change—fileio-code (C-x C-k f) M-x change—input-code (C-x C-k i) M-x change-display-code (C-x C-k d) M-x change-process-code (C-x C-k p) 漢字コード その他のコマンド M-x global-set-key M-x display-time M-x keyboard-quit % nemacs —u . ユーー・サ、 起動時のオプション 終了 C-x C-c 134 (c-g) ー名 G N U Emacs の保証範囲に関するドキュメントを表示 GNU Emacs の著作権に関するドキュメントを表示 GNU Emacs の配布に関するドキュメントを表示 英語チュートリアルの表示 日本語チュートリアルの表示 ヘルフ。機能の一覧を表示 カーソルを 1 単語後へ移動 カーソルを 1 単語前へ移動 カーソルを 1 行・上へ移動 カーソルを 1 行下へ移動 カーソルを 1 文字後へ移動 カーソルを 1 文字前へ移動 UNIX MAGAZINE 1990.9 Nemacs の強制終「 Nemacs を起動 “ユーサー名”のユーザーの初期ファイルを読み込んで ェデイタが実行中の処理を中断 モードラインに時刻を表示 キーノくインドを変更 フ。ロセス通信の漢字コードを変更 画面表示の漢字コードを変更 人力の漢字コードを変更 ファイルの漢字コードを変更 ウインドウを左右に分割 ウインドウを上下に分割 すべてのノくッフアを表示 ファイルを保存 ファイルを書込み禁止モードで読み込む ファイルを読み込む カーソル位置の文字を削除 ノくッフアの末尾へ移動 六ッフアの先頭へ移動 1 画面前へスクロール 1 画面後へスクロール