いまさらながらEmacsのデフォルトのキー操作について、日本語キーボードレイアウト上で可視化してみた。
先人の知恵(配置)を考慮しながら、自分好みのキー操作にカスタマイズしていきたい。
fundamental-modeのCtrlキーとの組み合わせ
設定ファイルを使用せず、一番素のメジャーモードであろうfundamental-modeでCtrlキーとの組み合わせでどんなfunctionが呼ばれるか図にしてみる。
ホームポジションから押しやすいキーとしてはC-;、C-,、C-.などが空いている。
それぞれのキーに割り当てられているものを関数名とともにおさらいする。
赤系 カーソル移動(小)
キー操作 | 関数 | 機能 |
---|---|---|
C-f | forward-char | カーソルを右に1つ移動 |
C-b | backword-char | カーソルを左に1つ移動 |
C-p | previous-line | カーソルを上に1つ移動 |
C-n | next-line | カーソルを下に1つ移動 |
青系 カーソル移動(大)
キー操作 | 関数 | 機能 |
---|---|---|
C-a | move-beginning-of-lineforward-char | カーソルを行の先頭に移動 |
C-e | move-end-of-line | カーソルを行の最後に移動 |
C-v | scroll-up-command | カーソルを約1画面分下に移動 |
オレンジ系 取り消し)
キー操作 | 関数 | 機能 |
---|---|---|
C-g | keyboard-quit | 途中の操作を取り消す |
C-/ | undo | 完了した操作の取り消し |
緑系 削除・選択・コピペ
キー操作 | 関数 | 機能 |
---|---|---|
C-d | delete-char | カーソルの位置の文字を1文字消す。 |
C-SPACE, または C-@ | set-mark-command | カーソルの位置を選択開始位置にセット。 |
C-k | kill-line | カーソル位置から行末まで削除(カット) |
C-w | kill-region | 選択範囲を削除(カット) |
C-y | yank | カットしたものをペースト |
C-backspace | backward-kill-word | カーソル位置から前の単語を削除(カット) |
紫系 検索
キー操作 | 関数 | 機能 |
---|---|---|
C-s | isearch-forward | 下方向に検索 |
C-r | isearch-backward | 上方向に検索 |
ピンク系 連続
単体では何も機能せず、入力後のキーで様々な操作ができるようになっている。
キー操作 | 関数 | 機能 |
---|---|---|
C-x | ファイル操作やバッファ操作 | |
C-c | モードによって様々 | |
C-h | ヘルプ機能 |
例えばファイルを開くのはC-x C-f、ファイルを保存するのはC-x C-sなど。
黄色系 代替キー
Emacsで割り当てられているわけではなくASCIIコードの都合でTABやRET、ESCとして認識される。
その他のキー
キー操作 | 関数 | 機能 |
---|---|---|
C-¥ または C-\ | toggle-input-method | Emacs内蔵の文字入力切り替え(日本語など) |
C-l | recenter-top-bottom | カーソルがある位置が真ん中(上部、下部)になるようにスクロール |
C-q | quoted-insert | 次のキーをそのまま文字として入力する |
C-t | transpose-chars | カーソルがある文字と、その前の文字を入れ替える |
C-u | universal-argument | 関数に数字などの引数を与えるために使う |
C-o | open-line | 改行するがカーソルは動かさない |
C-j | electric-newline-and-maybe-indent | 改行して必要に応じて自動インデントする |
C-] | abort-recursive-edit | 再起編集状態から抜ける(通常はC-gで十分) |
C-z | suspend-frame | 作業中断してOSやシェルに制御を戻す |
C-1 … 0 | digit-argument | 数字を引数にして関数に与えるときに利用(C-uでも可能) |
C– | negative-argument | マイナスを引数にして関数に与えるときに利用(C-uでも可能) |
例えば置換コマンド(query-replace)で特定の文字をタブに置換したい場合、置換後の文字列を入力する際にC-q TABを使用する。
また、改行に置換したい場合は置換後の文字列を入力する際にC-q C-jを入力する。
確認環境
Ubuntu 24.04
Emacs 30.2