Linux(というか UNIX)の高機能エディタ。
全部コマンド操作というマニアックなエディタなので、そのよく使うコマンドをメモしておく。
コマンドの意味 †
- 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-f | 1文字右へ移動 |
C-b | 1文字左へ移動 |
C-p | 1行上へ移動 |
C-n | 1行下へ移動 |
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-d | 1文字削除 |
BS,Del | 1文字削除(カーソル位置の左) |
C-x h | 全選択 |
ウィンドウ操作 †
Emacs は CUI なのに ウィンドウ という概念を持っている。さらに、バッファという概念もある。これがトーシロー(死語)には混乱の種になる。
- ウィンドウというのは、今表示されている画面のこと。
- バッファというのは、今開いているファイルのこと。
ウィンドウは 2分割して 2つのバッファ(2つのファイル)を表示させたりできる。Windows でいう MDI みたいなもんだと思えば良いか。
コマンド | 説明 |
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 は、なんとコンパイルまでその画面上でできる!何かスゴイネ。
M-x に続けて「compile」と打ち込むと、コマンドラインに「make -k」と表示される。
カレントディレクトリに Makefile があれば make が走る。ない場合は gcc (ファイル名) とでも指定すればコンパイルができる。
コンパイラが吐き出すメッセージも下ウィンドウに表示され、エラー行がある場合は、そのメッセージを選択して C-x で行ジャンプまでできる。
このへんはマクロやキーマップに登録しておくと良いかも。
高度な使い方 †
とりあえず、基本をマスターしてから書くよ?
参考 †
Linux メモ