emacs においては、全てをコマンド操作で行うことが可能です。 キーを押すと、そのキーに割り当てられている (これを、束縛あるいは バインドされているとも呼ぶ) コマンドが実行されます。 この「バインド」を変更することにより、自分の好みの emacs にすることができます。どのキーにも 割り当てられていないコマンドが沢山あって、 これらは M-x に続いてコマンド名を入力することで実行させることができます。 また、キー操作はコマンドの頭文字で覚えるようにすると楽です。
emacs のキー操作では、大文字小文字は区別されます。
・ C-x C-f (find-file) ファイルの読み込み
・ C-x C-s (save-buffer) カレントバッファを保存
・ C-x C-w (write-file) カレントバッファを別名で保存
・ C-x i (insert-file) カーソル位置にファイルを挿入
・ C-f (forward-char) 1文字進む (→)
・ C-b (backward-char) 1文字戻る (←)
・ C-n (next-line) 次の (= next) 行へ (↓)
・ C-p (previous-line) 前の (= previous) 行へ (↑)
・ M-f (forward-word) 1語進む
・ M-b (backward-word) 1語戻る
・ C-e (end-of-line) 行末へ
・ C-a (beginning-of-line) 行頭へ
・ M-e (forward-sentence) 文末へ
・ M-a (backward-sentence) 文頭へ
・ M-> (end-of-buffer) 現在位置をマークしバッファ末尾へ
・ M-< (beginning-of-buffer) 現在位置をマークしバッファ先頭へ
・ C-v (scroll-up) 1画面分進む
・ M-v (scroll-down) 1画面分戻る
・ C-x L (goto-line) 指定した行へ移動...
・ C-l (recenter) カーソルが画面中央にくるようにする
・ Del (delete-backward-char) カーソルの左の文字を削除
・ C-d (delete-char) カーソルの文字を削除
・ C-k (kill-line) 行のカーソル以降を削除し kill-ring へ
・ C-w (kill-region) region の範囲を削除して kill-ring へ
・ M-w (copy-region-as-kill) region の範囲を削除せず kill-ring へ
・ C-y (yank) kill-ring の内容をカーソル位置にはき出す
・ M-y (yank-pop) yank した内容を消去し、前の kill-ring をはき出す (yank の直後しか実行できない)
・ C-Space (set-mark-command) 現在のカーソル位置をマーク
・ C-x h (mark-whole-buffer) 現在のバッファ全体を region にする
・ C-x C-x (exchange-point-and-mark) カーソル位置 ←→ マーク位置を交換
・ C-o (open-line) カーソル位置から一行スペースを空ける
・ --- (kill-rectangle) 長方形に kill-region
・ --- (yank-rectangle) 長方形に yank
・ --- (open-rectangle) 長方形にスペースを空ける
・ C-x b (switch-to-buffer) ウインドウのバッファを切り換える...
・ C-x C-b (list-buffers) 存在しているバッファ一覧を表示...
・ C-x k (kill-buffer) バッファそのものを消去する...
・ C-x 0 (delete-window) ウインドウを消去する
・ C-x 1 (delete-other-windows) ウインドウを画面いっぱいに広げる
・ C-x 2 (split-window-vertically) 上下に 2分割 (C-x ^ で広げる)
・ C-x 3 (split-window-horizontally) 左右に 2分割 (C-x { , C-x } で広げる)
・ C-x o (other-window) カーソルを次のウインドウへ移動 (時計回り)
・ C-s (isearch-forward) 順方向に検索...
・ C-r (isearch-backward) 逆方向に検索...
・ M-% (query-replace) 文字列置換... (「!」で一度に置換できる)
・ --- (isearch-forward-regexp) 順方向に正規表現で検索...
・ --- (isearch-backward-regexp) 逆方向に正規表現で検索...
・ --- (query-replace-regexp) 正規表現で置換...
・ C-h f (describe-function) このコマンドは何をする ?
・ C-h k (describe-key) このキー操作は何をする ?
・ C-h w (where-is) このコマンドはどこのキーにある ?
・ C-h v (describe-variable) この変数は何を設定するもの ?
・ C-h b (describe-bindings) 現在のキー割り当ての一覧は ?
・ C-h a (command-apropos) 正規表現でコマンド名を検索
・ --- (apropos) 正規表現で関連するすべての名前を検索
[apropos は与えられた正規表現について emacs が知っているすべてのことを出力するため、非常に長大な出力が得られることがあるので注意しましょう。]
・ C-g (keyboard-quit) 現在実行中の操作を中止
・ C-z (suspend-emacs) Emacs を一時停止する (アイコン化)
・ C-u (universal-argument) 次に入力するコマンドを 4回実行する
(2回押せば 16回)
・ ESC 数字 次に入力するコマンドを数字の回数だけ実行
(ESC 1 0 0 a なら 100個の a を入力)
・ C-x u (advertised-undo) ひとつ前の操作を取り消し、元に戻す(undo)
・ C-x C-c (save-buffers-kill-emacs) すべてのファイルを保存し emacs を終了
・ C-x C-q (vc-toggle-read-only) バッファの変更禁止を on/off 切り替え
・ C-x ( (start-kbd-macro) マクロの記録を開始
・ C-x ) (end-kbd-macro) マクロの記録を終了
・ C-x e (call-last-kbd-macro) 記録したマクロを実行
・ M-q (fill-paragraph) 今いる段落を強制的に桁揃え (= fill)
・ C-x f (set-fill-column) M-q の桁揃え位置を現カーソル位置に設定
・ --- (auto-fill-mode) 自動的に桁揃えするモードに
・ --- (untabify) region 内のタブ文字をスペースに変換
. 任意の 1文字に一致正 規表現の例 :
x* x の 0回以上のくり返しに一致 (つまり、空列にも一致)
x+ x の 1回以上のくり返しに一致 (空列には一致しない)
x? x の 0回または 1回の出現に一致
x\|y x または y に一致
[...] [ ] 内の文字にどれでも一致
[^...] [ ] 内の文字以外ならどれでも一致
^ 行頭に一致
$ 行末に一致
\< 単語の始まりに一致 (すぐ前が空白や改行で、直後が英字など)
\> 単語の終わりに一致 (すぐ前が英字で、直後が空白など)
\( ... \) グループ化。これで囲んだ文字列は 1つの文字のように扱われる
(またこれで囲まれた文字列は置換の際に \1, \2 ... 等で利用可)
\\ 「\」に一致
・ C-x C-b (list-buffers) バッファメニュー モードに入る
・ d (Buffer-menu-delete) バッファに削除マークをつける
・ C-k (Buffer-menu-delete) バッファに削除マークをつける
・ x (Buffer-menu-execute) 削除マークをつけたバッファを本当に削除
・ o (Buffer-menu-other-window) バッファを別ウインドウで開く
・ f (Buffer-menu-this-window) バッファをこのウインドウで開く
・ s (Buffer-menu-save) バッファを保存
・ % (Buffer-menu-toggle-read-only) バッファの変更禁止を切り替え
・ m (Buffer-menu-mark) バッファをマーク
・ 1 (Buffer-menu-1-window) ウインドウを全開にしてバッファを開く
・ 2 (Buffer-menu-2-window) マークしたバッファを 2つのウインドウに開く
・ q (Buffer-menu-quit) バッファメニュー モードを抜ける
mh、dired、バッファメニューを使ってみると、たいていの操作は 似ていることに気づくでしょう。どのモードでもマークして実行するという点では 同じです。このように、コマンド体系の「くせ」を早くつかむことが、 emacs を早く体得するうえでのポイントです。