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

  • このエントリーをはてなブックマークに追加
  • Pocket

こんにちは。タクマ™ [@suwaru_blog] です。

今回は (とっつきにくい) 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-ffile
ファイル保存C-x C-ssave
別名でファイル保存C-x C-wwrite

カーソル移動

処理コマンド備考
C-fforward
C-bback
C-pprevious
C-nnext
行頭C-aahead
行末C-eend
ファイルの先頭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-yyank
行末まで文字カットC-kdelete
削除C-d
UndoC-x u / C-_
コメントアウトM-;

検索・置換

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

処理コマンド備考
前方検索C-ssearch
後方検索C-s C-rreverse
置換M-%
置換の選択肢: yesy
置換の選択肢: non
置換の選択肢: alln!
置換の選択肢: quitq

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-nnext
C-pprevious
開いている Buffer リストを閉じるqquit

フラグ処理

処理コマンド備考
Buffer リスト削除フラグd / kdelete flag
ファイル保存フラグssave flag
フラグの削除uundo
フラグを実行xexecute
フラグを使う状況について

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

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

Kill buffer

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

処理コマンド備考
Kill bufferC-x kkill

関連記事

Emacs ロードマップ

Emacs カスタマイズ方法

お仕事ください!

僕が代表を務める 株式会社 EeeeG では Web 制作・システム開発・マーケティング相談を行っています。
なにかお困りごとがあれば、Twitter DM や Web サイトからお気軽にご相談ください。

コメント

コメントを残す

*