北海道科学大学工学部情報工学科 松﨑研究室

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の使い方の「ファイル入出力およびバッファ」で紹介されているキー操作 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/

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

emacs 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とすると、編集したファイルの最後にチルド"~"がついたファイルができていると思います。これは編集する前の状態を保存したバックアップ・ファイルです。