Emacsの練習

準備

練習用のファイル tex.tar.gzをホームディレクトリにダウンロード、保存しててください。その後、下記にしたがってファイルの展開、作成を行ってください。

$ tar zxvf tex.tar.gz
./TeX/
./TeX/Readme.txt
./TeX/ex.tex
./TeX/exercise.ps
./TeX/figure.eps
$ cd TeX
$ cp Readme.txt practice01.txt
$ ls
Readme.txt  ex.tex  exercise.ps  figure.eps  practice01.txt
$

思い通りに動かなくなったときの対処法

操作していると、間違ったキー入力などで、思わぬ状態になることがあります。こういう場合はEmacsの使い方のページで紹介されている"C-g" で脱出することができます。

Emacsの起動および終了

Emacsの使い方の「起動と終了」で紹介されているキー操作で、Emacsの起動と終了をしてみましょう。

$ emacs

として起動すると、Emacsが動いている間は、ターミナルが使用できなくなります。そこで、

$ emacs &

のように、コマンドの後ろに "&" をつけると他のアプリケーションを起動しながら、ターミナルも使用できます。

ファイルを開く

Emacsの使い方の「ファイル入出力およびバッファ」で紹介されているキー操作 C-x C-f を使用してファイルを開いてみましょう。以下の例では、TeXディレクトリでemacsを起動していることを前提としています。

C-x C-f とすると、エコー行に

Emacs ファイルオープン1

と表示されます。これは、ホームディレクトリの下のTeXディレクトリにあるファイルを開くという意味です。ここで、開きたいファイル名を入力してEnterキーを押せばファイルが開きます。ファイル名を入力しないで、ここでTabキーを2回押すと、ディレクトリにあるファイル一覧が表示されます。

Emacs ファイルオープン2

ここで、ファイル名の最初の一文字だけを押して、TABキーを押してみましょう。practice01.txtを開く場合、"p"だけを入力して、スTABキーを押します。そうすると、

Emacs ファイルオープン3

のように、ファイル名が自動補間されたと思います。ここでEnterキーを押せば下図のように、practice01.txtが開きます。

Emacs ファイルオープン3

Emacsを起動するときに、以下のようにファイル名を指定して起動することもできます。

$ emacs practice01.txt &
$ 

カーソルおよび画面の移動と画面分割

Emacsの使い方のページの「カーソルおよび画面の移動」で紹介されているキー操作で、カーソルのおよび画面の移動を試してみましょう。さらに「画面分割」で紹介されているキー操作で、カーソルの移動および画面分割を試してみましょう。

削除、挿入、コピー

Emacsの使い方のページの「削除、挿入、コピー」を参考に、practice01.txtを使って削除、挿入、コピーの練習をします。まず、下図のように、1行目、"LaTeX"の後ろの"の"までカーソルを移動して下さい。

カーソル移動

ここで、下図に示すように、Delete(DEL)キーを押して、"の"を削除して下さい。

Delete

バッファの内容が変更され、モード行が

Delete

から

Delete

に変化しましたね。

下図のように、C-dで、現在カーソルがある"連"を削除して下さい。

C-d

下図に示すように、6行目"This"の先頭にカーソルを移動して下さい。

カーソル移動

下図のように、M-dで、1単語である"This"を削除して下さい。

M-d

下図に示すように、6行目"Version"の先頭にカーソルを移動して下さい。

カーソル移動

下図のように、C-kで、カーソルのある位置から行末まで削除して下さい。

C-k

下図のように、7行目行末に移動して下さい。

カーソル移動

下図のように、C-yで、いま削除した内容を張り付けて下さい。

C-y

下図のように、5行目先頭に移動して下さい。

カーソル移動

C-SPACE(あるいはC-@)でマークをセットして下さい。このとき、下図のようにエコー領域に"Mark set"と表示されます。

Mark set

下図のように、12行目先頭に移動して下さい。

カーソル移動

上図に示すように、選択範囲が異なる背景色を伴って覆われます。下図に示すように、C-wで選択範囲を削除して下さい。

C-w

下図のように、C-yで、いま削除した内容を張り付けて下さい。

C-y

下図のような範囲を選択し、その範囲をM-wでコピーして下さい。

選択

下図のように、C-yを2回繰返し、いまコピーした内容を張り付けて下さい。

C-y

このままの状態で次の「取消(Undo)」に進みましょう。

取消(Undo)

削除、挿入、コピーで編集した状態で、C-_を2回繰り返して下さい。下図のように、コピーした内容を張り付ける前の状態になるはずです。

C-_

Emacsの使い方の「繰返し」で紹介されているC-uを使用して繰返し回数を指定してみましょう。 C-uとしたあと、数字の2を入力すると、

C-x u

とエコー領域に表示されます。そして、C-x uとすると、2回分の作業が取り消されて下図のようになります。

C-x u

ここで、一旦終了してみましょう。終了はC-x C-cです。すると、下図のようにエコー領域にファイルを保存するかどうか聞かれます。

ファイル保存

ファイルを保存しないので、nを押してファイルを保存しないで終了して下さい。その後、yesを入力します。

ファイル入出力およびバッファ

Emacsの使い方の「ファイル入出力およびバッファ」を参考に、ファイル入出力およびバッファの使用法を学びましょう。

新規ファイルを開きます。 ディレクトリTeXで、Emacsを起動しているときに、C-x C-fとすると、エコー領域に

Fine file: ~/TeX/

と表示されます。ここでは下図のように新規ファイル名として、practice02.txtを入力しEnterキーを押して下さい。

Fine file: ~/TeX/practice02.txt

すると、エコー領域に

Fine file: ~/TeX/

と表示されます。このように存在しないファイル名を指定すると、新規ファイルとしてバッファが作成されます。また、下図のように、ターミナルから直接ファイル名を指定して

$ xemacs practice02.txt &
$ 

とする方法もあります。

では、下図に示す文字列を入力して下さい。

Input strings

C-x C-sでファイルを保存します。ファイルを保存すると以下のメッセージがエコー領域に表示されます。

ファイル保存時のメッセージ

続いてC-x C-wを使用してカレントバッファを別名で保存します。カレントバッファであるpractice02.txtをpractice03.txtというファイルに別名保存します。C-x C-wとすると、エコー領域に

Wirte file: ~/TeX/

と表示されます。下図のようにファイル名としてpractice03.txtを入力し Enterキーを押して下さい。

Wirte file: ~/TeX/practice03.txt

practice03.txtに、下図のように文字列を追加して下さい。

Input Strings

ファイルの挿入はC-x iで行ないます。ここでは、practice02.txtをpractice03.txtに挿入しましょう。C-x iとすると、エコー領域に

Insert file: ~/TeX/

と表示されます。下図のようにファイル名としてpractice02.txtを入力しEnterキーを押して下さい。

Insert file: ~/TeX/practice02.txt

すると、下図のように、practice03.txtのカーソルのあった位置に、practice02.txtの内容が挿入されます。

File inserted

ファイルをC-x C-sで保存して下さい。続いて、C-x C-fでpractice02.txtを開いて下さい。

C-x C-bはバッファ一覧を表示します。C-x C-b とすると、下図のように画面が2分割され、現在開いているバッファの情報が表示されます。

C-x C-b

practice02.txtの行の先頭に "."がついていますが、これは、現在、最も最上位にあるバッファを意味します。

画面間の移動はC-x oです。C-x oで、バッファ一覧に移動して下さい。すると、下図のように、pracitce02.txtの行の先頭にカーソルが移動します。

C-x o

C-nあるいは"n"キーで、下図のように、practice03.txtの行にカーソルを移動して下さい。

C-n

ここで、"d"キーを押して下さい。すると、下図のように、practice03.txtの前に"D"マークがつきます。これはそのバッファ(この場合は、practice03.txt)を削除することを意味します。

Delete Mark

この状態はマーキングされただけなので、まだ削除されていません。削除するには、"x"キーを押します。"x"キーをおして削除して下さい。すると、practice03.txtはバッファから削除され、下図のようになります。

Delete

続いて、C-pあるいは"p"キーでpractice02.txtの行ににカーソルを移動して、同様に、削除マークをつけて下さい。下図のようになります。

Delete Mark

削除を取り止め場合は、"u"キーを押します。C-pあるいは"p"キーでpracice02.txtの行までカーソル移動して、"u"キーを押して、削除を取り止めて下さい。下図のように、"D"マークが消えます。

Undo

C-pあるいは"p"キーでpracice02.txtの行までカーソル移動して下さい。そこで、"f"キーを押すと、下図のように、practice02.txtが開きます。

file open

C-x C-qはカレントバッファ(practice02.txt)を書き込み不可にします。 C-x C-qで書き込み不可にしてください。そうすると、モード行が

file open

から

C-x C-q

に変更されます。これは書き込み不可をあらわします。この状態で、何か書き込もうとすると、エコー領域に、

Buffer is read-only

と表示され、書き込みできないことを報告します。

もう一度C-x C-qを押して書き込み可にしてください。C-x kはカレントバッファを削除します。C-x kでを押して下さい。下図のようにエコー領域に、

Kill Buffer

と表示されるので、Enterキーを押して削除します。

Emacsの使い方の「検索、置換」を参考に、practice01.txtを使ってファイル入出力およびバッファの使用法を学びましょう。

C-x C-fで practice01.txtを開いて下さい。画面が分割されている場合は、C-x 1で practice01.txtだけを開いて下さい。 前進検索はC-sで行ないます。 C-sを押すとエコー領域に

I-search:

と表示されます。ここに入力した文字列が検索されます。ここでは"ex.tex"という文字列を検索します。そのまま"ex.tex"を入力して下さい。すると、下図のように、最初の"ex.tex"の位置にカーソルが移動します。

I-search:ex.tex 1

ここで、さらにC-sを押すと、下図のように、次の"ex.tex"に カーソルが移動します。

I-search:ex.tex 2

C-sを数回繰り返して、これ以上検索する文字列がないと、エコー行に

Failing I-search: ex.tex

と表示されます。さらに、C-sを押すと、

Wrapped I-search: ex.tex

と表示され、一番最初に検索された"ex.tex"に戻ります。後進検索はC-rで、C-sと検索方向が異なるだけで使用法は同じです。試してみて下さい。

カーソルをファイルの先頭に移動して下さい(M-<とすると、一気にカーソルがファイルの先頭に移動します)。

置換はM-%で行ないます。置換されるのはカーソルがある位置から後方のみなので注意して下さい。それでは"ex.tex"という文字列を"KAGAKU.tex"に置換してみましょう。M-%を押すとエコー領域に、

Query replace:

と表示されます。ここで"ex.tex"を入力して、Enterキーを押すとエコー領域に

Query replace: ex.tex with:

と表示されるので、置換したい文字列"KAGAKU.tex"を入力します。Enterキーを押すと、カーソルが最初の"ex.tex"に移動し、エコー領域に、

Query replacing ex.tex with HOKKAI.tex: (f1 for help)

と表示されます。置換する場合はスペースキーを押します。では、スペースキーを押して、最初の"ex.tex"を置換して下さい。下図のように、最初の"ex.tex"を"KAGAKU.tex"に置換後、次の"ex.tex"にカーソルが移動します。

Replace

置換しない場合は"n"キーを押します。"n"キーを押すと、下図のように置換しないで次の"ex.tex"に移動します。

Non-replace

一度に全ての文字列を置換したい場合は"!"キーを押します。"!"キーを押すと、下図のように、カーソルのある位置から後方の"ex.tex"全てが置換されて置換が終了し、エコー領域に置換した文字列の数が表示されます。

!

バックアップ・ファイル

Emacsでファイルを編集、保存したのち、ターミナルでlsとすると、編集したファイルの最後にチルド"~"がついたファイルができていると思います。これは編集する前の状態を保存したバックアップ・ファイルです。