[Emacs] Emacs チートシート

この記事は3年以上前に書かれた記事です。情報が古い可能性があります。

最近 Emacs を使い始めたのだけど、操作方法がいろいろ独特なので、備忘として。

Emacs とは

UNIX系OSの定番テキストエディタ。「イーマックス」と読む。組み込みコマンドの多さ、様々な言語のコンパイラ連携など機能が豊富で、開発環境として優れている(とのこと)。最近はWindows版もあるよ。

コマンドの意味

  • Ctrl キーとのトグルを “C-” と表記する。
  • Alt キーとのトグルを “M-” と表記する。(Meta キーというらしい)

Ctrl キーを押しながら “x” を押す、という場合は “C-x” と表記する。
Ctrl を押しながら “x” 続けて トグルなしで “u” という場合は “C-x u” と表記する。
Ctrl を押しながら “x” 続けて Ctrl を押しながら “c” という場合は “C-x C-c” と表記する。

Tera Term などのターミナルでリモートでやる場合、Alt キーで Meta キーの送信をするように設定しておくと良い。キーボードの設定あたりにそういうのがあるはず。

基本

コマンド説明
C-x C-f (ファイル名)ファイルを開く
C-x C-s上書き保存
C-x C-w(ファイル名)名前を付けて保存
C-x C-c保存して終了
C-x u元に戻す
C-gコマンドのキャンセル

カーソル移動

コマンド説明
C-f1文字右へ移動
C-b1文字左へ移動
C-p1行上へ移動
C-n1行下へ移動
C-a行頭へ移動
C-e行末へ移動
C-v次のページへ移動
M-v前のページへ移動
M-a文頭へ移動
M-e文末へ移動
M->文頭へ移動(現在位置を記憶)
M-<文末へ移動(現在位置を記憶)
C-x L指定行へ移動

編集

コマンド説明
C-SPACE選択開始
M-wコピー(選択範囲)
C-w切り取り(選択範囲)
C-y貼り付け
C-d1文字削除
BS,Del1文字削除(カーソル位置の左)
C-x h全選択

ウィンドウ操作

Emacs は CUI なのに ウィンドウ という概念を持っている。さらに、バッファという概念もある。初学者はここをよく混乱する。

  • ウィンドウというのは、今表示されている画面のこと。
  • バッファというのは、今開いているファイルのこと。

コマンド説明
C-x C-bバッファ一覧表示(開いてるファイル一覧ということ)
C-x bバッファ切り替え(ウィンドウに表示するファイルを切り替えるということ)
C-x kバッファを消す(開いてるファイルを閉じるということ)
C-x 0現在のウィンドウを閉じる(ファイルは閉じない)
C-x 1現在のウィンドウ以外を全て閉じる(ファイルは閉じない)
C-x 2ウィンドウを上下に分割する
C-x 3ウィンドウを左右に分割する
C-x o開いている次のウィンドウを表示する

検索

コマンド説明
C-s次を検索
C-r前を検索
M-%置換

タグジャンプ

C/C++ のプログラムをする際に便利な機能。

タグジャンプを利用するには、最初に TAGS ファイルをつくる。ソースファイルのあるディレクトリをカレントにして

$ etags *.[chCH]

とすると、C/C++ ソースファイルに対する TAGS が生成される。

サブディレクトリまで掘る場合は、

$ find ./ -name "*.[chCH]" | etags -

TAGS ができれば、そのディレクトリ下のソースファイルでタグジャンプが使える。

コマンド説明
M-.カーソル位置の定義位置へジャンプ
C-x 4 .カーソル位置の定義位置へジャンプ(別ウィンドウが開く)
C-x 5 .カーソル位置の定義位置へジャンプ(別フレームが開く)
M-*ジャンプする前の位置へ戻る

コンパイル

Emacs は、エディタ画面でコンパイルまでできる。ここが Emacs がタダのテキストエディタではなく、開発環境たる所以か。

M-x に続けて「compile」と打ち込むと、コマンドラインに「make -k」と表示される。

カレントディレクトリに Makefile があれば make が走る。ない場合は gcc (ファイル名) とでも指定すればコンパイルができる。

コンパイラが吐き出すメッセージも下ウィンドウに表示され、エラー行がある場合は、そのメッセージを選択して C-x で行ジャンプまでできる。

このへんはマクロやキーマップに登録しておくと良いかも。

参考

タイトルとURLをコピーしました