筑波大学 システム情報系 情報工学域 新城 靖 <yas@cs.tsukuba.ac.jp>
このページは、次の URL にあります。
https://www.coins.tsukuba.ac.jp/~syspro/2025/2025-05-14/emacs.html
あるいは、次のページから手繰っていくこともできます。
https://www.coins.tsukuba.ac.jp/~syspro/2025/
http://www.coins.tsukuba.ac.jp/~yas/
メモ帳とか、単純なテキスト・エディタ、ワードプロセッサでは、 プログラムを開発することはできない。 プログラム開発には、それに適したテキストエディタを使う。
情報科学類標準のテキスト・エディタは、Emacs である。 他のエディタが好きな人でも、若い人は、いろいろ使ってみることを推奨する。
GNU Emacs (ぐにゅー いーまっくす)。 Free Software Foundation開発。 Richard Stallman 原作。
いくつかの種類がある。
Meta キーがない時には、Esc キーを使う。 例えば、M-x と打ちたい時には、 例えば、まず、Escキーを打ち(離し)、その後、x キーを打つ。 (キーを2回に分けて打つ。) ただし、説明の表記は、M- のままなので注意する。
$ emacs file.txt
「file.txt」は、編集したいファイル名。他のファイルを編集したい時には変
更する。ファイルが存在しなければ、新しく作成する。ファイルが存在すれば、
そのファイルの内容を変更する。
Save file ファイル名? (y, n, !, ., q, C-r, d or C-h)
こういう時には、次のどれかをすると良い。
Modified buffers exist; exit anyway? (yes or no)
これに対しては、「yes」と 3 文字打ち、さらに、リターンキーを打
つ。
Modified buffers exist; exit anyway? (yes or no) yes
カーソル移動には、矢印キー(←、→、↑、↓)も使えるが、 手がホームポジションから離れてしまうのでよくない。 Control キーを使う方法を使う。
C-b backward-char C-f forward-char C-p previous-line C-n next-lineこのキー操作は、多くの「端末」でも使える。 特に、C-p (Control+P) は、直前のコマンドを再実行する時に便利なので、必ず覚える。
カーソルの左側を削除する方法とカーソルの右側(カーソルのある場所)を 削除する方法がある。
C-d delete-char カーソルがある文字(右)を削除 DEL delete-backward-char カーソルの左の文字を削除 C-k kill-line カーソルがある文字(右)から行末まで削除 空行なら1行削除
C-SPC
(Control + Space キー)または C-@
で設定する。
うまくいくと、ミニバッファに Mark set と表示される。
カーソルを動かしても移動しない。
次に新しいマークをセットするまで有効。
C-w
)
M-w
または Esc w)
indent-region
)
C-y
を
使う。
テキストの移動(カット&ペースト)の方法
C-SPC
、または、C-@
でマーク
C-w
でカット
C-y
でペースト
C-SPC
、または、C-@
でマーク
M-w
、または、Esc w
でコピー
C-y
でペースト
C-SPC
、または、C-@
でマーク
C-w
でカット
Emacs には、1 つのファイルを複数の Emacs で編集しないようにするために、ロックの機能がある。 複数の Emacs で編集しようとしていることを検出すると、Emacs は次のような警告を発する。
ファイル名 locked by ユーザ名@コンピュータ名 (pid 番号): (s, q, p, ?)?
普通は、q
と答えて、編集しない。
s
では、ロックを (steal) して編集、
p
では、ロックはそのままで編集できるが、良い方法ではない。
実行と逆順に終了するのが良い。例えば、端末のプログラム(とローカルのシェル)、ssh(と遠隔のシェル)、emacs の順に実行した ら、emacs、遠隔のシェル(とssh)、遠隔のシェル、端末のプログラムの順に終了する。
注意: ローカルのシェルを終了しウィンドウを閉じても、端末のプログラムが実行し続けていることがある。 必要なら端末のプログラムもきちんと終了すること。
Emacs で C-x C-f 等でファイル名を打つ時、補完機能を使うと便利である。 練習問題 emacs、タブキーによる補完機能
Emacs のマニュアルは、Emacs の中で info という機能を実行して表示できる。
M-x info
info は全体として木構造になっている。
C-x i
と打つ。
Insert file: ~/
Insert file: ~/挿入したいファイル名
C-x C-f
find-file
C-x C-w
write-file
C-x C-s
save-buffer
C-x C-c
save-buffers-kill-emacs (終了)
C-x C-w
で書き込むこと
を奨める。さもないと元のファイルを壊してしまうことになる。
類似のことは、cp コマンド等で元のファイルを別のファイルにコピーしてから、 別のファイルを Emacs で修正してもできる。
図? Emacsのウィンドウとバッファとファイルの関係
C-x C-f
。
C-x 2
、C-x 3
C-x 1
、C-x 0
C-x b
C-x C-b
キー | 説明 |
---|---|
C-x 2 | ウインドウを2つに分割(現在のバッファを複数ウインドウで表示) |
C-x 1 | ウインドウを1つにする(他のウインドウを閉じる) |
C-x 0 | 現在のウインドウを閉じる |
C-x o | 他の(other)ウインドウにカーソルを移動。 |
C-x C-b | バッファのリストを表示 |
C-x b | 別のバッファを表示する |
M-x query-replace (M-%, Esc %) が便利。
M-% と打つと、ミニバッファで次のように聞かれる。
Query replace: 置き換え前の文字列
Query replace 置き換え前の文字列 with: 置き換え後の文字列
キー | 意味 |
---|---|
y (または SPC) | 置き換え |
n | 次の候補に移動 |
q | 終了 |
! | 以降すべて置換 |
その他に、次のような置換え機能がある。 。