【キーバインド】わかるEmacs操作方法【cheetsheet】

今回は Emacs コマンドの使い方について解説していきます。前半では、基本的なコマンド入力方法・キーボード設定について、後半では、どのようなコマンドが使えるのか一覧でわかりやすくしています。

こんにちは。iQeda [@iQeeeda] です。

今回は (とっつきにくい) Emacs コマンドについて解説したいと思います!

  • 前半は、Emacs の基本的なコマンド入力方法・設定について
  • 後半は、コマンドを一覧で解説しています

Mac のキーボード配列で説明していますが、
Emacs コマンド一覧は OS 関係なく共通ですので参考にしてみてください。

【Mac】Emacs の基本的なコマンド入力方法

まず Emacs で軸となるキー 2 つを押さえてください。

  1. (control) キー
  2. ESC または (option) キー
    • ※  を使う場合、後述するコマンドラインツール設定が必要

C コマンド - Control

は Emacs 上で C コマンドとしての機能を持ちます。
キーを押しっぱなしで C コマンドとして動きます

具体例

キーを押しながら x キーを同時押しする
上記入力は C-x と表現することができます。

M コマンド - Meta

ESC は Emacs 上で M コマンドとしての機能を持ちます。
ESC は M コマンドとしての機能は同じですが「操作方法」が異なります。

  • ESC は押して離すと M コマンドとして動きます
  • は押しっぱなしで Mコマンドとして動きます

具体例

  • ESC を押して離して、そのあとに wキーを押す
  • もしくは  キーを押しながら wキーを同時押し
上記入力は M-wと表現することができます。

【Mac】おすすめのコマンドライン・キーボード設定

⌥ キーを Meta キーとして使いたい場合

を M として使いたい場合、コマンドラインツールの設定が必要になります。

Terminal の場合

Terminal > 環境設定 > プロファイル > キーボード を開き、
「メタキーとしてOptionキーを使用」のチェックをつけましょう

iTerm2 の場合

iTerm2 > Preferences > Profiles > Keys を開き、
Left ⌥ KeyRight ⌥ Key に 「Esc+」のチェックをつけましょう。

iTerm2 ってなんやねん...な方
こちらの記事で解説しているので参考にしてみてください。

Caps Lock を ⌃ に変更した方が便利

あなたが使っているキーボードの a の左側のキーは何ですか?

 の場合、設定不要

ホームポジションから、ちょっと小指を左にズラせば (C) ですね。
こちらは Emacs の操作がしやすいと思います。

Caps Lock の場合

US キーボードなど使っている場合は Caps Lock キーがあるはずです。

普段 Caps Lock を使わなければ (C) キーを割り当てた方が操作しやすくなります。
変更方法

環境設定 > キーボード > 修飾キー を開き、
「Caps Lock (⇧) キー」 の項目で ⌃ Control を選択してください。

Emacs コマンド一覧

Emacs の画面名は WindowBuffer という名称が使われます。
この先、こういった用語で解説します。わからない方は以下の記事を読んでみてください。

基本

処理

コマンド

備考

Emacs 起動

emacs

既存ファイルを Emacs で開く

emacs [ファイル名]

Emacs 終了

C-x C-c

入力中のコマンドから抜ける

C-g

ファイル操作

処理

コマンド

備考

ファイルを開く、新規作成

C-x C-f

file

ファイル保存

C-x C-s

save

別名でファイル保存

C-x C-w

write

カーソル移動

処理

コマンド

備考

C-f

forward

C-b

back

C-p

previous

C-n

next

行頭

C-a

ahead

行末

C-e

end

ファイルの先頭

M-<

ファイルの最後

M->

次のページへ移動

C-v

前のページへ移動

M-v

次の段落へ移動

M-}

前の段落へ移動

M-{

次の文へ移動

M-e

前の文へ移動

M-a

次の単語へ移動

M-f

前の単語へ移動

M-b

任意の行にジャンプ

M-g g [行番号] Enter

行番号の表示は設定が必要

【Tips】文字削除のコマンド設定をしておこう

init.el に下記設定をすれば C-h で文字削除ができるようになります。
よく Emacs 以外でもサポートされているコマンドなので設定しておくと便利です。

~/.emacs.d/init.el
(define-key global-map "\C-h" 'delete-backward-char)

ファイル編集

処理

コマンド

備考

改行

C-m / C-j

範囲指定開始

C-@

カーソル位置からの単語選択

M-F / M-@
M-B

forward
back

全選択

C-x h

コピー

M-w

カット

C-w

貼り付け

C-y

yank

行末まで文字カット

C-k

delete

削除

C-d

Undo

C-x u / C-_

コメントアウト

M-;

検索・置換

デフォルト設定だと大文字小文字の区別をしないので注意してください。
検索を抜けるには Enter もしくは C-g を押してください。

処理

コマンド

備考

前方検索

C-s

search

後方検索

C-s C-r

reverse

置換

M-%

置換の選択肢: yes

y

置換の選択肢: no

n

置換の選択肢: all

n!

置換の選択肢: quit

q

Window の分割

処理

コマンド

備考

上下に分割する

C-x 2

左右に分割する

C-x 3

今のWindowを閉じる

C-x 0

全部の分割を解除

C-x 1

Window 間の移動

C-x o

複数 Window 操作

処理

コマンド

備考

別 Window を起動

C-x 5 2

現在の Window 以外の全てを閉じる

C-x 5 1

現在の Window のみ閉じる

C-x 5 0

Buffer パターン検索

処理

コマンド

備考

バッファ名を指定して切り替える

C-x b

Buffer パターン検索の次の見出しに移動

C-o

Buffer パターン検索終了

C-g

Buffer リスト

Buffer 名の前後に「*」が入っている場合、
その Buffer は Emacs のシステムファイルに属していることを表します

処理

コマンド

備考

開いている Buffer リストを見る

C-x C-b

選択したバッファを開く

f

C-n

next

C-p

previous

開いている Buffer リストを閉じる

q

quit

フラグ処理

処理

コマンド

備考

Buffer リスト削除フラグ

d / k

delete flag

ファイル保存フラグ

s

save flag

フラグの削除

u

undo

フラグを実行

x

execute

フラグを使う状況について

たとえば、複数 Buffer でファイル編集をしている場合、
Buffer を切り替えて C-x C-s でファイル保存をかけていくのは面倒です。

また、保存し忘れる...というミスも発生しそうですね。
なのでファイル毎に「ファイル保存フラグ」を立てて、フラグ実行すると便利な場合があります。

Kill buffer

Buffer 消去用の Buffer です。特定の Buffer を閉じたいときに使います。

処理

コマンド

備考

Kill buffer

C-x k

kill

関連記事

Emacs ロードマップ

Emacs カスタマイズ方法

No comments yet