このマニュアルは emacs (あるいは mule) を使いはじめてまだ間もない頃の 人のためのものです。emacs を一度も使ったことのない人は残念ながら 対象としていません (そういう人には emacs 付属のチュートリアルをすすめます)。 これを読んでも emacs が快適に使えるようになるかどうかはあなた次第です。 emacs はマウスやカーソルキーで操作することもできますが、 これらを使っているようでは上達しないということも 覚えておいてください。このマニュアルはよその人にも読めるように書いた つもりですが、基本的に csc (東工大 情報工学科 計算機室) で emacs を 使用する人を対象としています。そのため、日本語入力環境やメール環境については 必ずしもあなたのサイトとは一致しないかもしれませんので注意してください。
emacs においてはすべてはコマンド操作で行われます。 キーを押すと、そのキーに割り当てられている (これを、束縛あるいは バインドされているとも呼ぶ) コマンドが実行されます。 この割り当てを変更することにより、自分の好みのキーで emacs を操作する ことができます。(あまり使われないため) どのキーにも 割り当てられていないコマンドが沢山あって、 これらは M-x に続いてコマンド名を入力することで実行させることができます (例えば C-n にはデフォルトで next-line というコマンドが割り当てられているため、 C-n を押すのと M-x next-line と入力するのでは同じ結果になる)。 また、キー操作はコマンドの頭文字で覚えるようにすると楽です (以下に紹介するコマンドで下線が引いてあるところを参照)。 なお 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-\ (toggle-egg-mode) 日本語入力モード on/off ・ M-h (fence-hiragana) ひらがなに変換 ・ M-k (fence-katakana) カタカナに変換 ・ C-p (henkan-previous-kouho) 前 (= previous) 候補に戻る ・ C-i (henkan-bunsetu-chijime) 文節を 1文字縮める ・ C-o (henkan-bunsetu-nobasi) 文節を 1文字伸ばす ・ M-s (henkan-select-kouho) 候補の一覧を表示... ・ --- (toroku-region) region の文字を単語として登録...
・ C-x C-j (skk-mode) 日本語入力モード on/off ・ x 前候補に戻る ・ q カタカナに変換、あるいは、ひらがな / カタカナ入力の切り替え ・ C-j 全角かなモードにする、あるいは、現在の入力を確定する ・ l 半角モードにする ・ L 全角英字モードにする ・ \ 記号入力モードにする... ・ @ 現在の日付を挿入する
・ 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) 正規表現で関連するすべての名前を検索
・ 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 RET (mh-rmail) mh フォルダモードに入る ・ C-x m (mh-smail) メールを送る... ・ . (mh-show) メッセージを見る ・ n (mh-next-undeleted-msg) 次のメッセージへ行く ・ p (mh-previous-undeleted-msg) 前のメッセージへ戻る ・ a (mh-reply) そのメッセージの返事を書く... ・ C-c C-y (mh-yank-cur-msg) (返事を書いているとき) 相手のメールを引用 ・ o (mh-refile-msg) メッセージに転送マークをつける (u で取消) ・ d (mh-delete-msg) メッセージに削除マークをつける (u で取消) ・ u (mh-undo) つけたマークを取り消す ・ M-f (mh-visit-folder) 過去のメールを見る... ・ x (mh-execute-commands) マークをつけたメッセージを処理する ・ q (mh-quit) mh フォルダモードを抜ける
・ C-x d (dired) dired モードに入る
・ R (dired-do-rename) ファイル名変更あるいはファイルの移動(mv)...
(マークしたファイルがあれば全てを移動)
・ f (dired-advertised-find-file) そのウインドウにファイルを表示
・ v (dired-view-file) ファイルの中身を見るだけ (編集はしない)
・ u (dired-unmark) つけたマークをとり消す
・ o (dired-find-file-other-window) 別のウインドウにファイルを表示
・ d (dired-flag-file-deletion) ファイルに削除マークをつける (u で取消)
・ x (dired-do-flagged-delete) 削除マークをつけたファイルを本当に削除...
・ C (dired-do-copy) ファイルをコピー (cp)...
(マークしたファイルがあれば全てをコピー)
・ M (dired-do-chmod) ファイルのパーミッションを変更(chmod)...
・ g (revert-buffer) 現在の表示を更新
・ m (dired-mark) ファイルをマークする
(これで移動やコピーがいっぺんにできる)
・ q (dired-quit) dired モードを抜ける
・ 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 を早く体得するうえでのポイントです。