UNIX 上で文章やプログラムなどを作成する場合によく使われるエディタが emacs や xemacs です。キーでの操作方法はどちらもほとんど同じですが、xemacs のほうがよりグラフィカルでツールバーもありますので、初心者にはとっつきやすいかもしれません。xemacs は VinePlus に収録されています。また、emacs と同様のキー操作のエディタで軽いものに ng, jed などもあります。
エディタ xemacs や emacs を起動するには、 GNOME 端末などでコマンドを入力します。
例 6-3. ファイル名を与えて起動
ファイル名を与えて起動すると、そのファイルが起動時に読み込まれます。例えば、emacsを使ってtest.cを編集したい場合は、次の様にします。
$ emacs test.c |
ファイル操作等はメニューからも行うことができますが、できるだけキー操作を覚えたほうが作業効率がよくなります。emacs や xemacs では日本語チュートリアルがありますので、ぜひ試してみて下さい。日本語チュートリアルは、emacs の場合はメニューバーの "help"/"Emacs Tutorial" で、xemacs の場合は "ヘルプ"/"基本"/"Tutorials"/"日本語" を選ぶと起動します。
なお、emacsやxemacsの使用中に表示がおかしくなったら
C-g ([Ctrl]+[G]) |
また、
C-x C-c ([Ctrl]+[X]のあとに[Ctrl]+[C]) |
![]() | emacsやxemacsでは、「C-」が「[Ctrl]を押しながら」を意味し、「M-」が「[Alt]を押しながら」もしくは「[ESC]を押したあとに」という意味になります。たとえば「C-n」は「[Ctrl]+[N]」を、「M-v」は「[Alt]+[V]」もしくは「[ESC][V]」の意味です。 |
emacs や xemacs では、編集中の文書はバッファと呼ばれるメモリ領域に読み込まれ、このバッファの内容に対して書き込みや修正を行います。ファイルに保存する命令を実行した時にはじめて、バッファの内容はディスク上のファイルに書き込まれます。
バッファの内容はウィンドウに表示されます。ウィンドウは複数用意することができ、そこに複数のバッファの内容や、同じバッファの違う部分を表示して編集を行うことができます。
バッファの編集状況等の情報は、最下部のモードラインに表示されます。
ウィンドウにカーソルがある時、キーボードから入力した文字はカーソル位置に挿入され、カーソルが進みます。日本語を入力する時には、'C-\'で日本語切替えモードになります。 もう一度'C-\'を押すとアルファベットの入力モードに戻ります。
日本語入力システムについては、項5.4を参照して下さい。
編集中のカーソルの移動は矢印キーの他、以下のようなキーで移動できます。
カーソル位置の文字の削除は C-d を用います。その他単語の削除や行末の削除等のキーもあります。
カーソル行以降の文字列検索には、C-s を用います。C-s を入力するとミニバッファに
I-search: |
一度入力した文字列を続けて検索したい時には、C-s を続けて2回押します。C-s の代わりに C-r を用いるとカーソル位置より前にある検索文字列を表示します。日本語の文字列を検索する場合は、C-sの後にEnterを押してから、C-\でかな漢字変換モードにしてから入力して下さい。
確認付きの文字列の置換を行うには M-% を用います。M-% を入力すると
Query-replace: |
Query-replace int with: long |
置換する文字列 int があるとそこで、以下のように表示されます。
Query-replace int with long: (? for help) |
ここで、スペースキーか'y'を押せば置換が行われ、'n'を押すと置換は行わず、次の候補に移動します。終了するときには、Enterキーか'q'を入力します。上に表示されている通り '?' を入力すればコマンドのリストが表示されます。
文字列の置換を確認なしに一括して行いたいときには、まず一括置換を開始したい場所にカーソルを移動し、M-x を押します。このとき、ミニバッファの表示は以下のようになります。
M-x |
ここで、replace-string と入力し、Enterキーを押します。
M-x replace-string |
その後は、確認のある場合の文字列置換の場合と同様に、置換のための文字列を入力すれば、一括置換が行われます。
emacs には replace-string の他、非常にたくさんのコマンドがあり、M-x は、このコマンドを入力するのに使われます。コマンドの名前はTabキーで補完しながら入力することができます。候補のコマンドが複数あるときには、候補一覧が表示されます。
実行したコマンドを取り消して、バッファを元の状態に戻すには、C-x u (または C-_ )を用います。連続して C-x u を用いると、実行した回数だけ前の状態に戻ります。
編集中のバッファの一部分を別の場所にコピーするには以下のような手順で行います。
コピーしたい部分の先頭にカーソルを移動します。
C-Space を入力します(これで先頭位置が記憶されます)。
コピーしたい部分の終りにカーソルを移動します。
M-w を押す(これで先頭位置からこの終りの部分までが記憶されます。この部分をリージョン(region:領域)と呼びます。)
コピー先にカーソルを移動します。
C-y を入力します。これでコピー完了です。
一部分を削除したい時には、上のコピーの手続きで、M-w を入力するかわりに、C-w を入力すれば、設定したリージョンは削除され、記憶されます。
一部分を移動したい時には、上の手続きで削除を行った後、移動先へカーソルを持って行きコピーの場合と同様に C-y を入力すれば、削除され、記憶されているリージョンがそこに出力されます。
複数のファイルを編集する場合には、ウィンドウを複数開いて、各ウィンドウに、同じバッファの異なる位置を表示したり、複数のバッファを表示したりして編集することができます。
例えば C-x 2 を入力するとカーソルのあるウィンドウが上下2つに分割されます。もとの通り分割されたウィンドウを一つに戻すには、C-x 1 を入力すれば、カーソルのあるほうのウィンドウのみの表示になります。分割したウィンドウ間のカーソル移動には C-x o を用います。分割したウィンドウの境界はマウスでドラッグすれば移動することもできます。
また、C-x 5 2 を入力すると、あたらしいウィンドウがつくられます。複数のウィンドウ間のカーソル移動には C-x 5 o を用います。
現在のウィンドウに表示するバッファを変更したい時には C-x b を入力すると, 以下のように表示されます。
Switch to buffer: (default test.txt) |
ここで、ウィンドウに表示したいバッファ名を入力し、Enterキーを押せば表示バッファが切り替わります。ここで、候補のバッファの一つが上のように default の後ろに表示されます。この候補でよいときには単にEnterキーを押して下さい。
C-x C-b で編集中のバッファの一覧が表示されます。この一覧表示をしてるウィンドウに C-x o で移動すると、各バッファについていろいな操作を行えます。カーソルの移動は、編集時と同様に C-n, C-p なども使えますが、この一覧表示のバッファでは単に n や p でも移動できます。
ウィンドウに表示したいバッファ名の位置にカーソルを移動し、1 を入力するとウィンドウにはそのバッファの内容が表示されます。その他、削除マークや保存マーク等をつけて、一括して削除や保存と言った作業も行えます。できる操作の一覧は「?」で表示されます。
[1] | オプション-nwは No Window (ウィンドウなし)という意味です。 |