Emacs の基本編集機能のガイド

【概要】 Emacsの操作コマンドを覚えるのは効率化のために重要である.Emacsでは,カーソル移動(Ctrl+p/n/f/b),テキスト編集(Ctrl+k/y),ファイル操作(Ctrl+x Ctrl+f/s),検索(Ctrl+s),バッファ管理(Ctrl+x Ctrl+b),ウィンドウ分割(Ctrl+x 2/1),リージョン指定(Ctrl+Space)などの基本機能が用意されている.

【目次】

  1. 基本的なカーソル操作とテキスト編集
  2. ファイル操作
  3. 検索・置換
  4. バッファ管理
  5. ウィンドウ操作
  6. リージョン指定とマーク設定
  7. テキスト削除
  8. 複写
  9. 貼り付け
  10. 取り消し
  11. 編集モード

1. 基本的なカーソル操作とテキスト編集

Emacsを使って効率的にテキストを編集するためには,カーソルの操作をマスターすることが重要です.

カーソル移動

テキスト削除

貼り付け

マーク設定

元に戻すとやり直し

2. ファイル操作

ファイルの読み込みや保存はEmacsの重要な機能です.

ファイルを開く

ファイルを保存

3. 検索・置換

Emacsの強力な検索機能により,効率的な編集が可能です.

インクリメンタル検索

文字列置換

4. バッファ管理

Emacsは複数のバッファを同時に管理でき,以下のような操作が可能です.

バッファ一覧

バッファ切り替え

バッファ削除

5. ウィンドウ操作

Emacsでは画面を分割して複数のバッファを同時に表示できます.

ウィンドウ分割

他のウィンドウを閉じる

他のウィンドウに移動

6. リージョン指定とマーク設定

Emacsでは,テキストの一部を選択するために「リージョン」という概念を使用します.以下がその方法です.

カーソル位置の文字全てが領域として指定されるわけではなく,カーソルの四角形の左辺を基準として領域が指定されます.この基準をポイントと呼び,リージョンはマークしたときのポイントから現在のカーソルのポイントまでになります.

7. テキスト削除

Emacsにはdeleteとkillという2つのコマンドがあります.deleteは文字を消去するのみですが,killは切り取りの意味合いがあります.killで取り除いたテキストはkill-ringという領域に保存されます.kill-ringに保存されたテキストは,別のコマンドで取り出すことができますが,deleteで消去されたテキストはundoを使わない限り復活しません.

領域の削除

リージョンが指定された状態でC-wをタイプすると,指定された領域が削除されます.C-wは指定領域を削除するコマンド(kill-region)です.

8. 複写

領域をバッファから削除せずにキルリングへ格納するにはM-wを使用します(kill-ring-save).このコマンドもマークとカーソルで領域を指定します.また,マウスの左ボタンドラッグでも複写できます.ドラッグした範囲の色が変わります.

9. 貼り付け

キルリングに取り込まれたテキストを取り出すにはヤンク(yank)を使います.ヤンクコマンドはC-yに割り当てられています.C-yをタイプするとキルリングに格納されているテキストをカーソル位置に挿入します.

さらに,その前にキルリングに記憶されたテキストも順次取り出すことができます.古い削除テキストを取り出すには,C-yコマンドの直後にM-yをタイプします(yank-pop).M-yを押すたびに,取り出されるテキストが順々に古い削除テキストに入れ替わります.

また,マウスの中ボタンクリックでマウスカーソルがある位置にテキストを挿入することも可能です.

10. 取り消し

間違えて削除をしてしまった場合などに,前の状態に戻りたいことがあります.C-/を入力すると,直前の操作を取り消すことができます.これをアンドゥ(操作の取り消し)といいます.アンドゥは何度も繰り返すことができます(繰り返すことができる回数に制限はあります).

11. 編集モード

メジャーモード

メジャーモードは主モードとも呼ばれ,プログラミング言語の編集や特定の種類の文章操作に関する知識を提供します.専用のコマンドとキー設定,入力の補助を提供します.

例えば,C言語編集用のメジャーモード「c-mode」はC言語スタイルのインデントを自動で行います.メジャーモードは各バッファに一つだけ設定でき,複数のメジャーモードを設定することはできません.

メジャーモードには以下のようなものがあります(他にもあります):

モードのロード

新しいバッファは特に何も指定しなければ,fundamental-modeになります.メジャーモードを設定するには,そのモードをロードします.モードのロードはM-xで,コマンドを直接実行します.例えば,Cモードを設定するには,

M-x c-mode

とタイプします.

新しいバッファを作成したりファイルを読み込んだときは,バッファ名の拡張子から自動的に適切なメジャーモードをロードします.この設定は.emacsに記述できます.

(setq auto-mode-alist (append '(("\\.C$" . c++-mode) ("\\.cc$" . c++-mode) ("\\.c$" . c-mode) ("\\.h$" . c++-mode) ) auto-mode-alist))

マイナーモード

マイナーモードはメジャーモードに対して,各種の機能を付加します.これらのモードは常に設定されているというわけではありません.マイナーモードを設定するにはM-xを使って直接マイナーモードの関数を呼び出します.上書きモードを設定するときは,

M-x overwrite-mode

とタイプします.モードが設定されているなら解除し,設定されていない場合は設定します.マイナーモードはメジャーモードと異なり,一つのバッファに複数設定できます.

マイナーモードには以下のようなものがあります(他にもあります):