Emacsは,LinuxをはじめとするUNIX系OS上において,前回に紹介したvi(「viエディタ入門」を参照)と並んで人気の高いエディタです。
Emacsは,しばしば「単なるエディタではなく,一つの環境である」といわれます。その理由は,ソースコードの編集,コンパイル,デバッグはもちろん,メールやWebブラウジングまでEmacsの中で完結できてしまうという,拡張性の高さでしょう。
今回は,Emacs入門を紹介します。
Emacsの概要
Emacsは,今から30年以上前,GNUプロジェクトの創始者であるリチャード・ストールマン(Richard Stallman)氏によって原型となるエディタが作られました。その後,様々なEmacsの実装が作られましたが,その中心となるのは,リチャード・ストールマン氏によるGNU Emacsです。この連載で取り上げている「Ubuntu(Ubuntu 8.04 LTS 日本語ローカライズド)」においても,GNU Emacsが標準的に搭載されています。
Emacsの特徴の一つは,高い拡張性です。Emacsの持つ豊富な機能は,Lispプログラミング言語の一つであるEmacs Lispによって実装されています。Emacsをカスタマイズする場合も,設定ファイルにEmacs Lispを使って記述します。そのため,最初はハードルが高く感じられますが,使いこなせるようになると非常に柔軟かつ強力な拡張やカスタマイズを施すことができます。例えば,一世を風靡(ふうび)したゲーム「Tetris」までできてしまうのです(図1)。
Emacsの基本操作
さっそくEmacsを使ってみましょう。まずは,起動と終了の方法を説明します。
メニューあるいは端末から起動する
Emacsを起動するには,Ubuntuのデスクトップの[アプリケーション]メニューから[アクセサリ]-[Emacs22 (X11)]を選択します。または,端末上で「emacs」コマンドを実行しても構いません。どちらも,新しいウィンドウでEmacsが起動します(図2)。
画面上に表示されているメッセージの上から3行目に「Type C-l to begin editing.」とあります。これは,[Ctrl]キーと[l](エル)キーを押すと編集を開始できる,という意味です。このように,Emacsでは[Ctrl]キーと何かのキーを合わせて押すことを,例えば「C-x」のように表現します。「C-x」なら,[Ctrl]キーと[x](エックス)キーを同時に押すようにします。
[C-l]の場合は,実際に[Ctrl]キーと[l]キーを同時に押すか,しばらくそのままにしていると,図3の画面に切り替わります。これを*scratch*バッファといいます。
Emacsは,複数のファイルを同時に開き,切り替えながら編集することができます。それぞれの作業領域をバッファといいます。*scratch*バッファはメモ書き用のバッファです(Lispの評価にも使えます)。複数のバッファは[Buffers]メニューで切り替えることができます。
Emacsを終了する,前の操作をキャンセルする
次に,Emacsの終了方法を説明します。[File]メニュー内の[Exit Emacs]をクリックすればよいのですが,C-x C-cでも終了します。これは,[Ctrl]+[x]を押してから[Ctrl]+[c]を押す,という意味です。[Ctrl]キーは押しっぱなしで構いません。GUI(Graphical User Interface)ではなく,端末画面内のCUI(Character User Interface)でEmacsを使っている場合はメニューが利用できませんので,この操作はぜひ覚えておいてください。
もう一つ,キー操作を間違えたときの対処法を記しておきます。Emacsでは,操作をキャンセルするにはC-g([Ctrl]+[g])を押します。操作中に訳がわからなくなったらとりあえずC-gを何回か押してみましょう。Escキーを押してもキャンセルにはなりません。