Emacsは「テキストファイル」と呼ばれる文字情報のみで出来ているファイルを作成・編集するための極めて重要なツール(テキストエディタ)である.今後,Webページ編集,レポート作成やC言語プログラム作成などにおいて非常に良く用いるので,今のうちに使い方に完全に慣れてしまうことが 大切である.
CSE環境のMac OS Xではテキストファイルの文字コードとして標準でUTF-8(ユニコード)を採用している.今後,学ぶ事になるC言語やJava言語のソースコードも原則としてUTF-8形式のテキストファイルとして作成する.(文字コードについては,後日,改めて詳しい説明を行う.) MacOS Xに標準添付されているテキストエディタ「テキストエディット」はUTF-8形式のテキストファイルを上手く扱えない場合が多いので,あまりお勧めできない.テキストエディタとしてはEmacsが現時点で最も適切であろう.
但し,EmacsはMacOS Xに標準でインストールされているものは,ターミナル内でしか利用出来ないとか,日本語対応があまり十分でないなどの理由で使い勝手が悪いので使用はお勧めできない.そのため,本演習では,Emacs開発の本家であるGNUのCocoa Emacsを用いる.但し,現時点での最新版であるEmacs 24.3は初心者が使うには少々不具合があるため,幾つかのパッチを適用してビルドしたパッケージを用いる.そのパッケージは他のフリーソフトフェアと合わせてNetBoot環境にて配布しているので,それをインストールすることを勧める.詳細はこちらのページを参照のこと.
CSE環境ではCocoa Emacsを導入した上でターミナル上でemacsコマンドを実行するとCocoa Emacsが起動するように調整している.自宅環境でEmacsを使う場合には混乱しないようにして欲しい.お勧めは,「Cocoa Emacsを導入しておいて,起動コマンドとしてopen -a Emacs.appを使う」である.
(注: cse環境におけるNetBootしたMacOS Xに追加インストールされている大半のソフトウェアはオープンソースソフトフェア,或いは,フリーソフトウェアであり,各自のMacにインストールして自由に利用する事が出来る.尚,フリー, free, の意味は,「自由に」使えるという意味であって,「無料で」使えるという意味ではない事に注意して欲しい.これらのフリーソフトウェアについては,既に授業中の実習課題として各自のMacBookへのインストールを説明した.)
ここでEmacsの操作練習として,既に作成済みのテキストファイル log をEmacsで編集してみよう.まず,lsコマンドでファイルlogが存在していることを確認しておく.
Emacsを用いたファイル編集手順の大まかな手順は以下の5段階となる.
Emacsでは,ControlキーとESCキーを組み合わせたキー操作を頻繁に用いる.そのようなキー操作を以下のように表記する.
Controlキーを押しながら何かxというキーを押す: C-x (例:Controlキーを押しながら,gを押す場合, C-g)
ESCキーを一度押して放してから何かxというキーを押す: M-x (例:ESCキーを押して放してからeを押す場合, M-e)
する.ターミナルにプロンプトが出ている状態でopen -a Emacs.app<Return>と タイプすれば良い.または,Dockからをクリックするか,アプリケーションフォルダからEmacs.appをダブルクリックして開く.
尚,Emacsウィンドウの下から2行目の白黒反転した行をモードライン,最下行をエコーラインと呼ぶ.
Emacsが無事起動したら,次に編集したいファイルの名前をEmacsに指示する.C-x C-fをタイプするとエコーライン上に
Find File: ˜/
と表示されるので,ここに読み込みたいファイル名をタイプして指定する.新しくファイルを作成する場合も,ここでファイル名を指定すればよい.ここではファイルlogを編集するので,ファイル名logをタイプし,最後に<Return>をタイプすると,その名前のファイルがEmacsに読み込まれて編集できる状態になる.
尚,Finder上からEmacsにファイルを読み込ませて開きたい場合,ファイルアイコンをEmacsのアイコン上にDrag&Dropしても良い.
拡張子.c, .java, .txtなどが付いた名前のファイルは,CSE環境ではダブルクリックするとEmacsに読み込まれて開くように調整してある.
Emacsに読み込まれたファイルは,カーソルの位置(左側)にキーボードからタイプされた文字が入力されてゆく.間違えた場合にはdeleteキーをタイプして修正する.
カーソルを移動させてウィンドウの端まで来ると自動的にスクロールして,ファイルの表示個所が移動する.カーソル移動以外に表示個所を移動させるには,以下のキー操作がある.
ファイルを編集していると,特定の一行(又は,複数行まとめて)を別の場所に移動させたいと思うことがある.この時,C-kとC-yを組み合わせた次の手順で簡単に移動できる.
特にC-kとC-yを 組み合わせた行の移動や複写編集の操作方法に慣れて欲しい.
C-k の働き: カーソルのある位置から,その行の末尾までの削除すると同時に「キルバッファ」に入れる.バッファとは削除した内容を一時的に覚えてくれる場所を意味する.この操作をkill操作と呼ぶ.
C-y の働き: 「キルバッファ」に入れておいた「行」をカーソル位置に復元して入力する.この操作をyank操作と呼ぶ.
尚,Cocoa Emacsの場合,設定次第で,MacOS X標準のキー操作(Command-X, Command-C, Command-V)による,カット&ペーストやコピー&ペースト操作も可能である.
操作を間違えた場合,アンドゥ操作を試してみよう.アンドゥ (Undo)とは直前の操作を取り消す操作である.アンドゥするにはC-_ (アンダースコア),又は, C-x u (Contorol-xのあとにu)をタイプする.アンドゥを繰り返すと,過去の編集履歴を遡って操作を取り消してくれる.
C-x C-s で作業結果がファイルに保存される. これを忘れると折角の作業が無駄になることがあるので,必ず編集作業が終わったら保存操作を忘れずに行うこと.
C-x C-c でEmacsを終了する. 保存操作を忘れていた場合はメッセージが表示されるので,y か n のどちらか適切な方をタイプして答えればよい.
尚,Emacsの操作中によく分からない状態になってしまった時には, C-g とタイプすれば,殆どの場合,操作開始直前の状態に戻れることを是非覚えておくこと.
Emacsを起動して以下の英文を english.txt
という名前のテキストファイルとして作成せよ. 尚,これはテキストファイルの作成練習に過ぎないので多少の入力間違いは気にしなくてもよい. 入力間違いに神経質にならないこと! また1行を折り返したい(改行したい)場合は,単に<Return>とタイプすれば良い. 改行を取りやめる場合は<Delete>をタイプすること.(英文は,株式会社アカデミー出版による通信英語講座中級コース「追跡」 ( http://www.ea-go.com/html/chase.html )より引用しました.)
"Look out!" The pilot knew they were going to die. The large, twelve-passenger Silver Arrow jet plane was being tossed around in the sky like a toy by the powerful winds over the Appalachian Mountains in upstate New York. The pilot and co-pilot were struggling hard to keep the nose of the aircraft up, fighting against the vicious downdrafts.
ファイルを保存し,一旦,Emacsを終了せよ.その後,再度,Emacsを起動して english.txt
を読み込み,以下のように編集せよ. この時,C-kとC-yの組み合わせによる行の移動や複写を上手に使うと能率良く編集が行える.操作を行う前に,そのような能率の良い手順をしっかり考えてから編集操作を行ってみよ.
"Look out!" The pilot knew they were going to die. "Look out!" The pilot knew they were going to die. The pilot and co-pilot were struggling hard to keep the nose to keep the nose. "Look out!" The pilot knew they were going to die. The pilot and co-pilot were struggling hard to keep the nose to keep the nose. The Appalachian Mountains in upstate New York
¥という文字と\(バックスラッシュ)という文字は,コンピュータ内部では本質的に同じ文字を表す場合が殆どである. これは元々アメリカ生れのASCIIと呼ばれるコンピュータ内部の文字表現を日本に持ち込んできたときに,米ドル通貨単位を表す$記号は含まれていたが 日本の通貨を表す¥記号が入っていなかったため,やむを得ず\記号を潰して¥記号として使うように規格が修正されてしまったという歴史的な理由がある. このような理由から,コンピュータのメーカーやキーボードや利用するソフトやOSによっては, コンピュータ内部では全く同じ文字が¥と表示されたり\と表示されたりするが,混乱しないで「同じ文字を表しているが,画面表示が違うだけ」と今の段階では理解しておくこと.技術的詳細は「コンピュータコミュニケーション」などの専門科目で解説されるであろう.
キーボードからアルファベット文字を入力するとき,1バイト文字(俗称:半角文字)と2バイト文字(俗称:全角文字)の違いに注意のこと.UNIXのコマンドやEmacsの操作を行うとき,各種プログラミング言語のプログラム作成を行う場合は,殆どの場合1バイト文字を用いる.間違いやすい一例を以下に示す.前が1バイト文字,後が2バイト文字である.
,, .. :: ;; >> << -− == ||
2バイト文字は,コンピュータ内部では漢字と同じ扱いを受けることを理解しておこう. 1バイト文字を入力しなければならない場合に2バイト文字を入力してしまってトラブルに陥ってしまう人が時々見かけられる. 尚,cse環境でEmacsを利用している場合,英数キーが押された状態でキーボードをタイプして入力できる記号は1バイト文字となっているはずであるが, Windows環境などからcc環境に遠隔アクセスして利用するときは混乱しがちなので注意が必要である.何故なら,1バイト文字と2バイト文字を間違えて入力した場合,上記の例で分かるようにコンピュータの画面上だけでは2バイト文字と1バイト文字の区別はかなり困難であるにもかかわらず,コンピュータは両者を全く異なる文字として厳密に取り扱う.そのために,「見た目は間違っていないように見えるのに,何故だかコンピュータが思ったように動作してくれない」という厄介なトラブルが起こり得るからである.特に厄介な場合として空白文字があり,1バイト空白文字 " "
と2バイト空白文字 " " が間違って紛れ込むと画面には何も表示されないために,トラブルの原因がなかなか分からないことがある.
既に作成してある英文テキストファイルenglish.txtを読み込んで,先頭行に次のような簡単な日本語文章を入力してみよ.
こんにちは。emacsによる初めての日本語入力です。
上手く入力できたら,そのテキストファイルを保存してから,一旦,Emacsを終了せよ.
次に,Emacsを再起動して,その保存したばかりのテキストファイルを再度読み込んで,確かに日本語文章が入力できている事を確認せよ.
次の例文をjp.txtという新しいファイルとして作成せよ.尚,カタカナへの変換は,読みがなを入力後にOption-xをタイプする.また,「」(かぎカッコ)は日本語モードで[]キーをタイプする.
数学の方程式で「X」といえば、未知数のこと。なぜ未知のものごとは「X」で表わすのか。 最初に未知数を表わす記号としてXを使ったのは、十七世紀の数学者であったデカルトであった。 当時、既知数として、a, b, cというアルファベットの最初の3文字が使われていたため、 それなら未知数には終わりの3文字を使おうと彼が提唱したと言われている。
ここで,練習で作成したテキストファイルjp.txtを各自に最も近いプリンタから印刷してみよ.その手順は以下の通りに従うこと.
改めて確認しておくが,印刷に関わる基本ルールはコンピュータガイドに記載されているから,一読しておいて欲しい.