emacsって、どんな大学でも一番最初に使うエディタではないでしょうか!?
それって操作がとても簡単なので誰でも使えると言うことが大きな理由だと思います。
そんなみんな使っているemacsですが、実は知らないことがいっぱいあるんです。
単語の整理
emacsで良く使われる単語の意味を整理しておきたいと思います。
ポイント
現在のカーソルのある位置
マーク
文章の任意の場所に印(見えない)をつけておくことができて、その見えない印のある場所のこと
リージョン
ポイントとマークに挟まれた部分
バッファ
削除された内容を一時的に保持しておく
一個保持できて、もう一回やると上書き
レジスタ
名前つきで(一文字)で保存する
削除
Del
カーソルの前の一文字を削除
c-d
カーソルの位置の一文字を削除
c-k
カーソルの位置から右側を削除
c-/
アンドゥー(直前の削除を無効にする)
c-xu
アンドゥー(直前の削除を無効にする)
コピー、カット、ペースト
c-SPC 、c-@
削除する領域の先頭にマークをつけるために用いる。カーソル位置にマーク(見えない)をセットする
M-w
カーソルの位置とマークで囲まれた領域をコピーする
(コピーバッファに書き出す)
c-w
カーソルのいちとマークで囲まれた領域を削除する
(コピーバッファに移動する)
c-y (M -y)(ヤンク)
c-wで削除した領域をカーソルの位置に復活する(=ペースト)
(コピーバッファの内容をバッファに書き出す)
※ヤンクではC-yのあとにM-yを押すとその数だけコピーする内容をさかのぼることができる
リージョン・バッファ操作
c-SPC, c-shift-SPC, c-@
カーソルのある文字とその直前の文字との間にマークをセットする
c-w
リージョンの内容を削除する
c-wr r
カーソルの位置をrと言うレジスタにコピーする
c-xrjr
rと言うレジスタに保存された位置の所にジャンプする
c-xrsr
リージョンの内容をrと言うレジスタにコピーする
ファイル操作
Ctrl-x, Ctrl-f
ファイルを読み込む
Ctrl-x, b バッファ名
バッファをウインドウに呼び出す
Ctrl-x, Ctrl-b
バッファの一覧表示と操作
Ctrl-x, i
カーソル位置にファイルを挿入する
Ctrl-x, Ctrl-s
ファイル(バッファ)を保存する
Ctrl-x, Ctrl-w
ファイルに名前を付けて保存する
Ctrl-x, k
ファイル(バッファ)をクローズする
ディレクトリ操作
Ctrl-x, d
ディレクトリ(ファイル)操作が行えるDiredモードに移行する
ESC-x compile
make -k を削除してコンパイルコマンドを入力コンパイルコマンドを実行できる
ESC-x recompile
2回目以降のコンパイルコマンド
ESC-x shell
emacs上にシェルが起動する
ESC-x gdb
emacs上にgdbが起動する
矩形領域の編集
c-x SPC
矩形領域選択モードに入る
c-w, M-w, c-y
矩形のリージョンの内容を削除、コピー、貼り付けする
c-x r k
その時点でのマーク位置とポイント位置を元に作った矩形領域を削除する
c-x r y
矩形領域をペーストする
カーソル移動
C-a
先頭
C-e
行末
C-b
1文字戻る
C-f
1文字進む
C-p
1行戻る
C-n
1行進む
ESC-<
ファイル先頭に移動
ESC->
ファイル末尾に移動
C-x [
1ページ戻る
C-x ]
1ページ進む
カーソル移動表

ウィンドウ操作
C-x 1
現在の位置だけ残す・カーソルの位置だけ残す
C-x 2
縦に並べる・ウィンドウを縦に2分割する
C-x 3
横に並べる・ウィンドウを横に2分割する
C-x 0 (ゼロ)
現在の位置だけ閉じる
C-x o (オー)
ウィンドウの移動
C-x ^
ウィンドウを縦方向に拡大
C-x }
ウィンドウを右方向に拡大
日本語入力
SPACE
漢字変換開始または次候補を表示
RETURN
確定
Ctrl-n
次候補を表示
Ctrl-p
前候補を表示
ESC-h
文節をひらがなにする
ESC-k
文節をカタカナにする
Ctrl-f
文節単位でカーソルを前進
Ctrl-b
文節単位でカーソルを後退
Ctrl-a
最初の文節にカーソル移動
Ctrl-e
最後の文節にカーソル移動
Ctrl-i
文節を一文字縮める
Ctrl-o
文節を一文字のばす
ESC-s
ミニバッファに候補をメニュー表示
大文字小文字変換・検索・置換
ESC-c
単語先頭の文字を大文字にする
Ctrl-x, Ctrl-u
マークから現在位置までの範囲の文字を大文字にする
ESC-u
単語を大文字にする
Ctrl-x, Ctrl-l
マークから現在位置までの範囲の文字を小文字にする
ESC-l
単語を小文字にする
Ctrl-s,Ctrl-r, Ctrl-ESC-s Ctrl-ESC-r
検索
ESC-%M-x
問い合わせ置換
※C-sがカーソルの後ろを検索していき、C-rがカーソルの前を検索していきます。
C-M-*は正規表現に対応した検索、置換になります。
ヘルプ
コマンドを忘れた時でもヘルプは開けるように覚えておくと良いと思います。
C-h m
M-xのコマンドついて調べてみるといろいろできて便利です。
ゲーム
ESC-x doctor
人工知能と会話するプログラム
ESC-x hanoi
ハノイの塔(C-u 数字ESC-x hanoiで高さ変更)
ESC-x life
眺めるだけのライフゲーム
ESC-x mpuz
乗算パズル
「A」欄に「1」を入れたいときは、「a 1」と記述する
ESC-x dunnet
迷路を探検するアドベンチャーゲーム
[e]:eastの略(東に移動)
[examine]:調べる
[get]:拾う
[climb]:木登りをする
ESC-x gomoku
五目並べ
ESC-x tetris
テトリス
ESC-x blackbox
マインスイーパ風パズル。
X線を当て、その反射・吸収のしかたを観測し内部を推測するゲーム
コマンド:
[SPC]:X線の発射、フラグを立てる
[RET]:終了、スコア表示
[ESC-x describe-mode] で詳細が表示されます
X線は、ballの右上、右下、左上、左下を通るとその地点で90度屈折するので、それをもとに位置を推測します。
「ball」に当たって吸収の時「H」、反射して戻ってきた時「R」
まずはC-u 1 M-x blackbox で「ball」1つから始めましょう。
ESC-x snake
ヘビを操るdot-eatタイプのゲーム
ESC-x solitaire
ソリティア
[Shift]-[up][down][left][right]飛び越した石を消す。
[space] : 消せる石の数を表示
その他
M-x goto-line
指定の行に移る(行番号を指定)
M-x set-variable truncate-linesをf を選択することで、長い行が画面の端まで来たときに折り返さない
M-x tabify
マーク位置から現在位置までのスペースをタブに変換
M-x untabify
マーク位置から現在位置までのタブをスペースに変換
M-x override-mode
上書き/挿入モード(トグル)
M-x replace-regexp
文字列を置換(正規表現で指定)
M-x list-colors-display
利用できる配色一覧
M-x comment-region
事前に指定しているregionをコメント化
M-x toroku-region
事前に指定しているregionを辞書へ登録
M-x tdescribe-function
関数や変数の説明を見る
M-x revert-buffer
Emacsの再起動なしでファイルを更新する
M-x describe-bindings
キーバインドを調べる
M-x occur
バッファから検索を行い、検索に一致した行を一覧表示できる
C-u -1 M-x comment-region
事前に指定しているregionをコメント解除