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-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 なのに ウィンドウ という概念を持っている。さらに、バッファという概念もある。これがトーシロー(死語)には混乱の種になる。

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

ウィンドウは 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 メモ


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-05-26 (水) 22:23:44 (2735d)