🔍

Emacs チートシート

2024/11/25に公開

Emacs チートシート

カーソル移動

機能 コマンド 説明
1文字左へ移動 C-b カーソルを1文字左へ移動
1文字右へ移動 C-f カーソルを1文字右へ移動
1行上へ移動 C-p カーソルを1行上へ移動
1行下へ移動 C-n カーソルを1行下へ移動
行の先頭へ移動 C-a カーソルを行の先頭へ移動
行の末尾へ移動 C-e カーソルを行の末尾へ移動
1単語左へ移動 M-b カーソルを1単語左へ移動
1単語右へ移動 M-f カーソルを1単語右へ移動
前の段落へ移動 M-{ カーソルを前の段落へ移動
次の段落へ移動 M-} カーソルを次の段落へ移動
ページ上部へ移動 M-< バッファの先頭へ移動
ページ下部へ移動 M-> バッファの末尾へ移動
スクロールアップ(1画面分) C-v 画面を1ページ下にスクロール(カーソルも移動)
スクロールダウン(1画面分) M-v 画面を1ページ上にスクロール(カーソルも移動)
特定の行番号へ移動 M-g g または M-x goto-line 指定した行番号へカーソルを移動

バッファ操作

機能 コマンド 説明
ファイルを開く C-x C-f ファイルを開く、または新しいファイルを作成
ファイルを保存 C-x C-s 現在のバッファを保存
名前を付けて保存 C-x C-w 新しい名前でバッファを保存
ファイルを閉じる C-x k 現在のバッファを閉じる(kill-buffer)
すべてのバッファを保存 C-x s すべての変更済みバッファを保存
バッファの切り替え C-x b バッファを切り替える
次のバッファへ移動 C-x <right> 次のバッファに移動
前のバッファへ移動 C-x <left> 前のバッファに移動
バッファリスト表示 C-x C-b 現在のバッファリストを表示

ウィンドウ操作

機能 コマンド 説明
ウィンドウを左右に分割 C-x 3 現在のウィンドウを左右に分割
ウィンドウを上下に分割 C-x 2 現在のウィンドウを上下に分割
ウィンドウを閉じる C-x 0 現在のウィンドウを閉じる
他のすべてのウィンドウを閉じる C-x 1 現在のウィンドウ以外をすべて閉じる
ウィンドウ間を移動 C-x o 次のウィンドウにフォーカスを移動
ウィンドウの切り替え(逆順) C-x O 前のウィンドウにフォーカスを移動
ウィンドウのバッファ切り替え C-x b 現在のウィンドウで表示するバッファを変更
ウィンドウを上下に切り替え M-<up> または M-<down> 上下のウィンドウ間で移動
ウィンドウを左右に切り替え M-<left> または M-<right> 左右のウィンドウ間で移動
ウィンドウサイズを調整 C-x { または C-x } ウィンドウの幅を小さく/大きくする
ウィンドウの高さを調整 C-x ^ ウィンドウの高さを拡大
ウィンドウの配置をリセット C-x + すべてのウィンドウサイズを均等にする
ウィンドウをスクロール C-M-v 他のウィンドウをスクロール(下方向)
現在のウィンドウの内容を別ウィンドウに複製 C-x 4 b 現在の内容を別のウィンドウで開く
ウィンドウ間でファイルを開く C-x 4 f 別のウィンドウで指定したファイルを開く
他のウィンドウに分割して検索結果を表示 M-x occur 検索結果を別ウィンドウに表示

ディレクトリ操作

機能 コマンド 説明
dired を起動する C-x d 指定したディレクトリを dired モードで開く
次のファイル/ディレクトリに移動 n 次の行に移動
前のファイル/ディレクトリに移動 p 前の行に移動
ファイル/ディレクトリを開く RET カーソル位置のファイルまたはディレクトリを開く
ファイルを別ウィンドウで開く o カーソル位置のファイルを別ウィンドウで開く
親ディレクトリに移動 ^ 一つ上のディレクトリに移動
ディレクトリを再読み込み g 現在のディレクトリ内容を再読み込み
新しいディレクトリを作成 + 新しいディレクトリを作成
ファイルをコピー C カーソル位置のファイルを指定した場所にコピー
ファイルを移動/名前変更 R カーソル位置のファイルを指定した場所に移動または名前を変更
ファイルを削除マーク d カーソル位置のファイルまたはディレクトリを削除するようマーク
削除マークを実行 x マークされた削除操作を実行
ファイルを削除 D カーソル位置のファイルまたはマークしたファイルを削除
ファイルをマーク m カーソル位置のファイルをマーク
マークを解除 u カーソル位置のファイルのマークを解除
すべてのマークを解除 U 現在のバッファ内のすべてのマークを解除
マークしたファイルをコピー C マークしたすべてのファイルを指定した場所にコピー
マークしたファイルを削除 D マークしたすべてのファイルを削除
ファイル名で絞り込む / 指定した正規表現でファイル/ディレクトリを絞り込む
ファイルを検索 A 指定した文字列をマークしたファイルから検索
ファイルの詳細表示を切り替え ( または ) ファイルの詳細情報の表示をトグル
ディレクトリ間で移動 M-x dired-other-window 別ウィンドウで dired を開く
シンボリックリンクを作成 M-s カーソル位置のファイルに対するシンボリックリンクを作成

文字入力、文字列操作

機能 コマンド 説明
リージョン開始マーク設定 C-SPC または C-@ 現在のカーソル位置をマークとして設定
マークへカーソル移動 C-x C-x マーク位置とカーソル位置を交換
リージョンをコピー M-w 選択したリージョンをコピー
リージョンをカット C-w 選択したリージョンをカット
カーソルから行末まで削除 C-k カーソル位置から行末まで削除
カーソルから行頭まで削除 C-u C-k カーソル位置から行頭まで削除
1行全体を削除 C-S-backspace 現在の行全体を削除
最後にコピー/カットした内容を貼り付け C-y キルリングから貼り付け(ヤンク)
キルリング内の別の内容を貼り付け M-y 直前に貼り付けた内容を切り替えて別の内容を貼り付け
リージョンをコメントアウト C-x C-; または M-; 選択範囲をコメントアウト
コメントを解除 C-u M-; コメントアウトされた行を解除
アンドゥ C-/ または C-x u 最後の操作を取り消す
リドゥ(アンドゥの取り消し) C-g の後 C-/ または C-x u リドゥ操作(依存するバージョンによる)

検索と置換

機能 コマンド 説明 使用例
単純検索(前方) C-s 前方に単純な文字列を検索 C-s を押して hello を入力し hello を検索
単純検索(後方) C-r 後方に単純な文字列を検索 C-r を押して world を入力し world を検索
正規表現検索(前方) C-M-s 正規表現を使用して前方検索 C-M-s を押して正規表現 foo[0-9] を入力
正規表現検索(後方) C-M-r 正規表現を使用して後方検索 C-M-r を押して正規表現 bar.* を入力
次の一致箇所に進む C-s または C-M-s で再入力 検索中に次の一致箇所に進む
前の一致箇所に戻る C-r または C-M-r で再入力 検索中に前の一致箇所に戻る
一致を編集(クエリ置換) M-% クエリで文字列を置換(確認付き置換) M-% を押し foobar に置換
一致をすべて置換 M-x replace-string 全一致を指定文字列に置換 M-x replace-string を押し foobar に置換
正規表現での置換(クエリ) C-M-% 正規表現を使用してクエリ置換 C-M-% を押し正規表現 foo[0-9] を置換
正規表現ですべて置換 M-x replace-regexp 正規表現を使用して全一致を置換 M-x replace-regexp を押し foo[0-9] を置換
大文字・小文字を区別しない検索 M-x toggle-case-fold-search 大文字・小文字の区別を切り替える fooFoo も一致させる
ハイライト検索のトグル M-x lazy-highlight-cleanup 検索一致箇所のハイライトをトグル
バッファ全体を対象に置換 同じコマンドを実行 すべてのバッファ内の文字列や正規表現を置換
複数ファイル内検索 M-x grep 指定したパターンを複数のファイル内で検索 M-x grep を押して正規表現 TODO を検索
複数ファイル内置換 M-x grep + wgrep Grep結果を編集し、複数ファイル内での置換を実行 M-x grep の後、結果を編集し保存

正規表現

機能 正規表現またはコマンド 説明 使用例
正規表現検索 C-M-s 正規表現を使用して前方検索
正規表現検索と置換 M-x replace-regexp 正規表現を使用して検索と置換を実行
任意の1文字 . 任意の1文字と一致 a.baab, acb などに一致
任意の文字列(0文字以上) .* 任意の文字列(空文字列を含む)に一致 a.*bab, acb, axyzb などに一致
特定の文字セット [abc] abcのいずれかと一致 [abc]a, b, c に一致
特定文字以外のセット [^abc] abc以外の任意の1文字と一致 [^aeiou] は母音以外の文字に一致
範囲指定 [a-z] 小文字アルファベットの範囲と一致 [0-9] は数字に一致
文字列の開始 ^ 行または文字列の先頭に一致 ^Hello は行頭のHelloに一致
文字列の終了 $ 行または文字列の末尾に一致 world$ は行末のworldに一致
単語の境界 \b 単語の境界に一致 \bcat\b は単独のcatに一致
繰り返し(0回以上) * 直前のパターンが0回以上繰り返される場合に一致 ba*b, ba, baa に一致
繰り返し(1回以上) + 直前のパターンが1回以上繰り返される場合に一致(Emacs独自拡張) ba+ba, baa, baaa に一致
繰り返し(0回または1回) ? 直前のパターンが0回または1回繰り返される場合に一致 ba?b, ba に一致
グループ化 \( ... \) 正規表現をグループ化し、キャプチャリングに使用 \(ab\)+ab, abab に一致
選択(または) | 左右どちらかのパターンと一致 foo|barfoo または bar に一致
後方参照 \N \(...\)でキャプチャしたN番目のグループと一致 \(foo\)\1foofoo に一致
任意の空白 \s- スペースやタブなどの空白文字に一致 foo\s-barfoo bar に一致
任意の非空白文字 \S- 空白文字以外の任意の文字に一致 foo\S-barfooXbar に一致
数字 [0-9] または \d 任意の数字1文字に一致 \d\d42 に一致
非数字 [^0-9] または \D 数字以外の1文字に一致 \Da, - に一致

キーボードマクロ

機能 コマンド 説明
キーボードマクロの記録開始 C-x ( キーボードマクロの記録を開始
キーボードマクロの記録終了 C-x ) キーボードマクロの記録を終了
マクロを実行 C-x e 記録したマクロを繰り返し実行
マクロを複数回繰り返し実行 C-u [回数] C-x e 指定した回数マクロを繰り返し実行
名前をつけてマクロを保存 M-x name-last-kbd-macro 現在のマクロに名前をつける
名前付きマクロをファイルに保存 M-x insert-kbd-macro 名前付きマクロをEmacs Lisp形式でバッファに挿入し保存可能にする
名前付きマクロを呼び出す M-x [マクロ名] 保存したマクロを呼び出して実行
登録済みマクロを確認 M-x list-macros 利用可能なマクロのリストを表示
キーボードマクロをキーバインドに設定 M-x global-set-key キーボードマクロを任意のキーバインドに割り当てる

基本的な使い方

  1. マクロの記録:

    • C-x ( を押してマクロの記録を開始。
    • 任意の操作(テキスト編集など)を行う。
    • 記録が終わったら C-x ) を押して終了。
  2. マクロの実行:

    • C-x e を押すと記録したマクロを実行。
    • C-u を使うと回数指定が可能(例: C-u 5 C-x e は5回実行)。

名前をつける・保存・再利用

  1. 名前をつける:

    • M-x name-last-kbd-macro を実行し、名前を入力。
    • これでマクロが一時的に名前付きで利用可能。
  2. ファイルに保存:

    • M-x insert-kbd-macro を使用して、バッファにLisp形式でマクロを挿入。
    • ファイルに保存することで再利用可能。
  3. キーバインドに設定:

    • M-x global-set-key を使用して、任意のキーにマクロを割り当てる。

ヘルプの利用

機能 コマンド 説明
ヘルプシステムを起動 C-h ヘルプシステムの基本メニューを表示
キーバインドの説明を表示 C-h k 特定のキーの機能と説明を表示
コマンドの説明を表示 C-h f 指定した関数やコマンドの説明を表示
変数の説明を表示 C-h v 指定した変数の説明と現在の値を表示
ドキュメントを検索 C-h i Infoドキュメントシステムを開く
キーワードで検索 C-h a 特定のキーワードに関連するコマンドを検索
トピックを検索 C-h t Emacsのチュートリアルを開く
最近の変更履歴を表示 C-h n Emacsの変更履歴を表示
モードのヘルプを表示 C-h m 現在のメジャーモードとマイナーモードの説明を表示
ドキュメント文字列を検索 C-h d 特定の文字列を含むドキュメントを検索
キーバインド一覧を表示 C-h b 現在のバッファで有効なキーバインド一覧を表示
Emacs FAQ を表示 C-h C-f EmacsのFAQを表示
外部パッケージのヘルプを表示 C-h P インストール済みのパッケージの説明を表示
Emacsバージョン情報を表示 C-h C 現在のEmacsのバージョン情報を表示

Discussion