GNU Emacs リファレンス

GNU Emacs(ヌー イーマックス)は MIT の Richard Stallman によって作られました。GNU は GNU's Not UNIX の略であり、Emacs は Editing Macros の略です。 この強力なエディターの機能のほんの一部でも紹介できたらと思いこのリファレンスを書きました。

Emacsを初めて使う方は情報処理センターから無料で手に入れることができる『利用の手引き(ワークステーション編)』の Emacs の章をご覧下さい。 必要十分なことが書かれていますし、チュートリアルに最適です。Appendex B はリファレンスにもなっているのでまずそちらの方で慣れることをお勧めします。

このリファレンスは Emacs に慣れ、もっと便利に使いたいと思っている方へ贈るものです。 『利用の手引き』に書かれたことはすべて含んでいるのでオンラインのリファレンスとしてもお使い下さい。 もしこのリファレンスを初めて見る方は『表記について』を一度読んでおいてください。


目次

  1. 起動
  2. 終了
  3. 一時中断
  4. 取消と中断
  5. カーソルの移動
  6. リージョン
  7. テキストの削除
  8. テキストの複写
  9. ファイルの操作
  10. 検索
  11. 置換
  12. ウィンドウ
  13. シェル
  14. Dierd
  15. バッファ
  16. 編集
  17. LaTeX モード
  18. ヘルプ機能
  19. 表記について

起動

% emacs filenamefilenameを編集
% em filenamefilenameを編集(省略形)

終了

C-x-cEmacs を終了

一時中断

Emacs で編集中メールが届いた。from で確かめたいが、いちいちファイルを保存して終了するのは面倒くさい。 そんな時に C-z をする。Emacs に戻るのは fg です。

C-z一時中断してシェルに降りる
% fgシェルから Emacs に戻る


取消と中断

C-g は特に重要なコマンドかもしれません。Emacs を使っていて動きが止まったり、分からないメッセージが出たり、何か困った時に何度か C-g を押してみて下さい。 また元に戻るかもしれません。

ただし、下にgarbage collection ...と出ている場合は何もせずに待って下さい。

C-_取消 文字を間違えて BS で消してしまった時に試して下さい
C-g中断 Emacs が止まった、分からないメッセージが出たなど困ったときに試して下さい


カーソルの移動

FMR と Macintosh では矢印の書かれたカーソルキーで、Sparc Stasion S4/10 では右にある数字の書かれたテンキーで移動します。

C-p上 ↑(8)キーと同じ
C-n下 ↓(2)キーと同じ
C-f右 →(6)キーと同じ
C-b左 ←(4)キーと同じ

C-a行の先頭に移動
C-e行の末尾に移動
M-<ファイルの先頭に移動
M->ファイルの末尾に移動

C-v1画面上へスクロール
M-v1画面下へスクロール

M-x goto-line [RET] n [RET]行番号を指定して移動
M-x what-line [RET] n [RET]現在カーソルがある行を表示します

C-l現在カーソルがある行を画面の中央にする


リージョン

リージョンとは範囲指定のようなものです。 他のエディターやワープロで言う指定範囲と同じものだと思って構いません。

C-@ もしくは C-[SPACE] でリージョンされた領域を M-y で登録し、『テキストの複写』で紹介する C-y で複写します。

M-h でいうパラグラフ(段落)とはタブもしくはスペースで先頭がインデントされたものか、間に空行を挟んだもの(ブロックスタイル)のことです。 また、C-x h にあるバッファは後の『バッファ』を参照して下さい。

C-@リージョンの開始 範囲は C-@ からカーソルで移動したところまでです
C-[SPACE]上記と同じ
M-yC-@ もしくは C-[SPACE] でリージョンした文字を登録
M-h現在のパラグラフを登録
C-x hバッファ全体を登録
C-x-xリージョンした位置を交互に移動(どこまでリージョンしたかを忘れたときに)

レクタングルはリージョン開始位置からカーソルで移動した対角線を結ぶ四角形のリージョンです。

C-@レクタングルの開始(C-[SPACE]でも同じ)
M-x kill-rectangleレクタングルに保存
M-x delete-rectangleレクタングルを削除
M-x yank-rectangleレクタングルを挿入
M-x clear-rectangleレクタングルを空白で埋める
M-x open-rectangleレクタングルを空白で埋め、右へずらす


テキストの削除

C-k と C-w で削除されたものは削除リングという見えない場所に格納され、次の『テキスト複写』で紹介する C-y で複写することができます。

BSカーソル左の文字を削除
C-dカーソル位置の文字を削除
C-kカーソル位置から行の末尾まで削除
C-w指定範囲を削除


テキストの複写

C-yリージョン、もしくは削除リングにある文字を表示(ヤンクする、と言う)

テキストの複写と移動の例を示します。

テキスト複写の例

abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
という文章があったとします。この2行の文章を例に複写と移動をしてみます。

複写の例1

a のところにカーソルを移動させ、C-@(C-[SPACE])をします。そしてカーソルを A の下の行に移動させ、M-w を押します。 複写したい所にカーソルを移動させ、C-y としてみて下さい。

複写の例2

a のところにカーソルを移動させ C-k をします。C-y としてみて下さい。

移動の例

a のところにカーソルを移動させ、C-@(C-[SPACE])をします。そしてカーソルを A の下の行に移動させ、C-w を押します。 移動したい所にカーソルを移動させ、C-y としてみて下さい。

ファイルの操作

C-x-fファイルのロード
C-x-sファイルのセーブ
C-x-wファイルの別名セーブ
C-x iカーソル位置にファイルを挿入

検索

ファイルの中からある文字を探します。

C-s stringstringを検索。C-s で次のstringを検索
C-r stringC-s と逆方向、つまり上方向に検索
ESC検索の終了
C-g検索を終了し、検索開始位置へ移動

M-x re-search-forward [RET] string正規表現で検索
M-x re-search-backward [RET] string正規表現で逆検索

北星学園にインストールされた Emacs では C-s で漢字の検索ができません。 しかし、M-% を使ったトリッキーな方法で漢字の検索もすることができます。 この M-% の使用法は次の『置換』を参照して下さい。

M-% KANJI [RET] KANJI [RET]リターンで次の文字列を検索
ESC検索の終了
C-g検索を終了し、検索開始位置へ移動


置換

ある文字を別の文字に置き換えます。

M-% stirng1 [RET] string2 [RET]対話式の置換
y置換して次に移動(リターンでも同じ)
n置換せず次に移動(BS キーでも同じ)
!これ以降のstring1を確認せずにstring2に置換
ESC検索の終了
C-g検索を終了し、検索開始位置へ移動

M-x replace-string string1 [RET] string2 [RET]string1を確認せずにstring2に置換


ウィンドウ

C-x ^カーソルのあるウィンドウを縦方向に拡大
C-x }カーソルのあるウィンドウを横方向に拡大
C-x 0カーソルのあるウィンドウを消去
C-x 1カーソルのあるウィンドウを最大表示
C-x 2ウィンドウを横に分割
C-x 5ウィンドウを縦に分割
C-x oカーソルをほかのウィンドウに移動
M-C-v他のウィンドウのスクロール
C-x 4 f他のウィンドウにファイルを読み込む

C-l画面に突然文字が現れたときには気にせず C-l で消して下さい


シェル

Emacs は環境です。この Emacs のシェル機能を使えばログインしてからログアウトとするまで Emacs を終わらせずにすべての作業ができてしまいます。

M-!シェルコマンドの実行 grep や find などです

M-x shellシェルモードの実行
C-c-c割込を送る
C-c-dファイルの終わりを送る
C-c-o直前の実行結果をバッファから削除
C-c-r直前の実行結果の先頭へ移動
C-c-z停止シグナル(C-z)を送る


Dired

Dired は俗にファイラーと呼ばれるものです。 rm では消せないおかしなファイルもこれで消せるかもしれません。

% emacs .Emacs を Dired モードで起動
C-x dEmacs から Dired を起動

n次のファイル名にカーソルを動かす
p前のファイル名にカーソルを動かす

#ファイル名の前後に # がついたファイルに削除マークをつける
~ファイル名の末尾に ~ がついてファイルに削除マークをつける
cファイルのコピー
dファイルに削除マークをつける
eファイルの編集
fファイルのロード
Mファイルモードの変更(chmod)
o他のウィンドウを開いて編集
rファイル名の変更
u削除マークの取消
vディレクトリの移動、もしくはファイルの閲覧
x削除マークがついたファイルの削除


バッファ

Emacs は複数のファイルを扱うことができます。 それらのファイルはバッファと呼ばれる入れ物に格納されます。 このバッファを使いこなせれば vm や gnus を一つの Emacs で管理できるようになります。

vm 用や gnus 用に Emacs をいくつも起動するのはもうやめましょう。

具体的な説明をしてみます。あなたは今、gnus で NetNews を読んでいるとします。すると、メールが届きました。vm を立ち上げたいとします。そうしたら、あなたは

M-x vm

として vm を起動してください。vm が起動したはずです。ウィンドウが gnus と分割されているかもしれません。そんな時は『ウィンドウ』を参照してください。C-x 1 と C-x o だけ知っていれば十分かもしれません。vm を読み終えたら普通に q で終了します。 gnus に戻ったと思います。

ここで、バッファを理解すれば、vm を終らせずにすみます。そうすれば、メールが来る度に vm を起動しなくてすむので便利です。今、vm を使っているとします。 gnus に戻るなら

C-x b *Newsgroup*

とします。gnus から vm に移るには

C-x b INBOX Summary

とします。この、 *Newsgroup* や INBOX Summary といった名前は C-x-b とすることが知ることができます。最初のうちはどれがどれだか分からないと思いますが、ここは経験です。

C-x b指定したバッファに切り替える
C-x-bバッファの一覧を表示
C-b k指定したバッファの削除


編集

便利な編集機能の紹介です。

M-#カーソルの下、もしくは次のスペルをチェック
M-x spell-bufferカレントバッファのスペルをチェック

C-t2つの文字を入れ替え
C-x-t2つの行の入れ替え
M-uワードを大文字に変換
M-lワードを小文字に変換
C-x-uリージョンされた範囲を大文字に変換
C-x-lリージョンされた範囲を小文字に変換


LaTeX モード

LaTeX モードと TeX モードの違いは C-c-f があるかないかです。 もし、モードライン(下の黒い帯)に LaTeX という文字ではなく、TeX となっている場合には

M-x latex-mode

として下さい。 TeX モードには C-c-f がありませんが、その他のコマンドは全く同様に使うことができます。

C-j にあるパラグラフとは TeX でいうパラグラフです。つまりリターン2個のことです。 リターンを2個入れるより C-j としましょう。 Emacs が自動的にリターンを2個入れ、それと同時にシンタックス(構文)をチェックしてくれるからです。

C-jパラグラフにし、シンタックスのチェック
M-{{}を挿入し、{}の間にカーソルを移動
M-}ブレス内にいるとき、}の後にカーソルを移動
C-c-bバッファを LaTeX で処理する
C-c-fコマンドのペアを閉じる \begin{document} を打って C-c-f としてみて下さい
C-c-kLaTeX の処理を中断
C-c-l最後のエラーメッセージを処理
C-c-pLaTeX の出力を印刷
C-c-q印刷待ちを表示(lpq)
C-c-rリージョンを LaTeX で処理します。
M-x validate-TeX-bufferバッファ内のシンタックスをチェック


ヘルプ機能

M-x help-for-helpオンラインヘルプシステムの開始
bカレントバッファのキーバインディング表示 vm や gnus を起動して試してください
iInfo の実行 Emacs 上のオンラインヘルプ
kバインドされているコマンドとその動作
l最後にタイプした 100 個のキャラクタを表示
mカレントバッファのモードの説明
TNEmacs のチュートリアルを開始

M-x manual-entryUNIX の man を実行します


表記について

コマンド簡単な説明

というように紹介しています。コマンドはあなたがキーボードから入力するものです。

コマンドの所で C-x-c や M-% という表記を見ることになると思います。 大文字で書かれた C と M は CTRL キーと META(ESC) キーを表しています。 続く - は C か M を『押し続ける』ということです。 もし - がない場合にはその時点で C もしくは M から指を離すことを表します。 続く小文字の英数字はキーボードから入力する文字を表しています。

以下に簡単な例を示します。

C-x-c ... CTRL を押し続け x と c を押す
C-x i ... CTRL を押し続け x を押し、CTRL を離して i を押す
M-%   ... META(ESC)キーを押し続け % を押す
ほかに、[RET]はリターンキーを表し、italicで書かれたものはあなたが決めて入力するものです。

例えば、ある行へ移動するコマンド

M-x goto-line [RET] n [RET]

があります。これは META(ESC) キーを押しながら x を押し、goto-line とキー入力してからリターンキーを押します。 そして、移動したい行番号を入力しリターンキーを押します。そうすると指定した行番号nへ移動します。

ここで一つテクニックを紹介します。goto-line を goto-l まで入力したら TAB キーを押してみて下さい。ine が補完されたと思います。 go で TAB したり、goto で TAB したりといろいろと試してみて下さい。 また、C-x i や C-x-f でファイル名を指定するときにも TAB を試してみて下さい。


ONLINE MANUAL
webadmin@hokusei.ac.jp