[Emacs]Emacsとか久々に使ったので基本キー操作やコマンド等を思い出すためにまとめてみる

最近ずっとWin環境であったのと、MacだとTextmateあたりをずっといじっておりEmacsを全然使っていなかったので,色々と思い出すため and 再確認のために基本的なものをまとめてみました.

まぁあとウェブリファレンスとかあってもURLを忘れる可能性が高く、また手元に本が無い場合等不自由極まりないので、自分で使う範囲内で便利そうなものの一覧となっています。

内容は入門 GNU Emacsにあるものを参考にしております。これもwikiに移転する。 現在移転中。。。 とりあえずデフォルトキーバインドくらいは全部補足する勢いでやっておりまする

カーソル移動関連

色々と忘れていた. and C-M 系統書いてない。

1ページ前進

  • C-x ]
    • forward-page

1ページ後退

  • C-x [
    • backward-page

バッファの先頭へ

  • M-
    • beginning-of-buffer

バッファの末尾へ

  • M->
    • end-of-buffer

指定行へ移動

  • M-g g
    • goto-line

バッファのn文字目へ

  • なし
    • goto-char

現在業を画面の中央へ

  • C-l
    • recenter

次のコマンドをn回繰り返す

  • C-x u n(nなしだと何故か4回)
    • advertised-undo

1語前進

  • M-f
    • forward-word

1語後退

  • M-b
    • backward-word

1センテンス後退

  • M-a
    • backward-sentence

1センテンス前進

  • M-e
    • forward-sentence

1パラグラフ前進

  • M-}
    • forward-paragraph

1パラグラフ後退

  • M-{
    • backward-paragraph

1画面前進

  • C-v
    • scroll-up

1画面後退

  • M-v
    • scroll-down

1文字前進

  • C-f
    • forward-char

1文字後退

  • C-b
    • backward-char

1行前進

  • C-n
    • next-line

1行後退

  • C-p
    • previous-line

現在のインデント範囲で次の括弧へ

  • C-M-f

現在のインデント範囲で次の括弧へ

  • C-M-b

次の括弧へ

  • C-M-n

前の括弧へ

  • C-M-p

次の関数へ

  • C-M-e

前の関数へ

  • C-M-a

テキスト関連

よく使うキー操作は覚えているのですが、そうでないコマンドは色々と忘れていたようだ

リージョン選択コマンド

リージョンの先頭もしくは末尾をマーク

  • C-@, C-Space
    • set-mark-command

カーソルとマークの位置交換

  • C-x C-x
    • exchange-point-and-mark

リージョンを削除

  • C-w
    • kill-region

リージョンをコピー

  • M-w
    • kill-ring-save

現在の段落をマーク

  • M-w
    • mark-paragraph

現在のページをマーク

  • C-x C-p
    • mark-page

バッファ全体をマーク

  • C-x h
    • mark-whole-buffer

C-yコマンドの後に、一つ古い削除項目の貼付けにする

  • M-y
    • yank-pop

C-M-h

  • 関数全体をリージョン選択

矩形選択コマンド

矩形を削除、削除したテキストは保存される

  • C-x r k
    • kill-rectangle

矩形を削除、ただし保存はされない

  • C-x r d
    • delete-rectangle

最後に削除した矩形を挿入する

  • C-x r y
    • yank-rectangle

スペースを使用し、マークされたエリアを空欄にする。削除されたテキストは保存されない

  • C-x r c
    • clear-rectangle

マークされたエリアに空の矩形を挿入する

  • C-x r o
    • open-rectangle

矩形をレジスタrに保存する

  • C-x r r r
    • copy-rectangle-to-register

レジスタrに保存されている矩形を挿入する

  • C-x r i r
    • insert-register

マークされた矩形の中身をstringに挿入する

  • C-x r t string Enter
    • string-rectangle

各行が入力された文字列からなる矩形を挿入する

  • なし
    • string-insert-rectangle

矩形の先頭に空白が含まれていない場合その空白を削除して矩形を縮小する

  • なし
    • delete-whitespace-rectangle

基本インデントコマンド

カーソルとマークの間の全ての行をインデントする

  • C-M-\
    • indent-region

その行の最初の非空白文字に移動する

  • M-m
    • back-to-indentation

行の連結コマンド

  • M-^
    • delete-indentation

テキスト交換コマンド

二つの文字を入れ替える

  • C-t
    • transpose-char

二つの単語を入れ替える

  • M-t
    • transpose-words

二つの行を入れ替える

  • C-x C-t
    • transpose-lines

二つの文を入れ替える

  • なし
    • transpose-sentences

二つの段落を入れ替える

  • なし
    • transpose-paragraphs

大文字小文字変換コマンド

単語の先頭を大文字にする

  • M-c
    • capitalize-word

単語を大文字にする

  • M-u
    • upcase-word

単語を小文字にする

  • M-l
    • downcase-word

直前の単語の先頭を大文字にする

  • Meta - M-c

直前の単語を大文字にする

  • Meta - M-u

直前の単語を小文字にする

  • Meta - M-l

削除関連

文字消去

  • C-d
    • delete-char

直前の文字を消去

  • Del
    • delete-backward-char

次の単語を削除

  • M-d
    • kill-word

直前の単語を削除

  • M-Del
    • backward-kill-word

カーソル位置から行末まで削除

  • C-k
    • kill-line

次の文を削除

  • M-k
    • kill-sentence

直前の文を削除

  • C-x Del
    • delete-backward-sentence

削除した内容を貼付け

  • C-y
    • yank

マークしたリージョンを削除

  • C-w
    • kill-region

次の段落を削除

  • なし
    • kill-paragraph

直前の段落を削除

  • なし
    • backward-kill-paragraph

ファイル関連

ファイルを開く

  • C-x C-f
    • find-file

代わりのファイルを読み込みC-x C-fで読んだファイルを入れ替える

  • C-x C-v
    • find-alternate-file

カーソルの一にファイルを挿入する

  • C-x i
    • insert-file

バッファの内容をファイルに保存

  • C-x C-s
    • save-buffer

バッファの内容を指定したファイルに保存

  • C-x C-w
    • write-file

Emacsを終了する

  • C-x C-c

コマンド中止、取り消し

現在のコマンドを中止する

  • C-g
    • keyboard-quit

最後の編集を取り消す

  • C-x u
    • advertised-undo

最後の編集を取り消す

  • C-_ or C-/
    • undo

ファイルが最後に保存された時点でのバッファを復元する

  • なし
    • revert-buffer

検索コマンド

順方向に検索(C-sで順方向移動)

  • C-s
    • isearch-forward

逆方向インクリメンタル検索(C-rで逆方向移動)

  • C-r
    • isearch-backward

検索の終了

  • Enter
    • isearch-exit

検索を取り消す

  • C-g
    • keyboard-quit


検索文字を削除

  • Del
    • isearch-delete-char

カーソルが位置している単語を検索

  • C-s C-w
    • isearch-yank-word

カーソルが位置から行末まで検索

  • C-s C-y
    • insearch-yank-line

キルリングに保存されている文字列を検索

  • C-s M-y
    • insearch-yank-kill

単純順方向検索

  • C-s Enter 検索 Enter

単純逆方向検索

  • C-r Enter 検索 Enter

正規表現関連

順方向に正規表現検索

  • C-M-s Enter
    • re-search-forward

逆方向に正規表現検索

  • C-M-r Enter
    • re-search-backward

順方向に正規表現でインクリメンタル検索

  • C-M-s

逆方向に正規表現でインクリメンタル検索

  • C-M-r

正規表現で置き換える

確認なしで正規表現置き換えをする

ヘルプ関連

ヘルプ関連のキー操作は覚えていると非常に役に立つ

ヘルプコマンド(次にa,b,c.. 等と押す必要がある)

  • C-h
    • help-command

ヘルプコマンドのヘルプ

  • C-h C-h or その他多数
    • help-for-help

正規表現でコマンドの調査を行う

  • C-h a
    • apropos-command

Emacsに割り当てられているキーバインドをみる

  • C-h b
    • describe-bindings

キー操作に割り当てられている内容の簡単な説明を行う

  • C-h c
    • describe-key-briefly

正規表現でドキュメント検索を行う

  • C-h d
    • apropos-documentation

エコーメッセージを見る

  • C-h e
    • view-echo-area-messages

Emacsに入っているElisp関数の情報を見る

  • C-h f
    • describe-function

こんにちはこんにちは

  • C-h h
    • view-hello-file

Infoをたちあげる

  • C-h i
    • info-goto-emacs-command-node

指定したコマンドのヘルプを表示する

  • C-h k
    • describe-key

キーコマンドの説明

  • C-h K
    • Info-goto-emacs-key-command-node

キー操作のログを見る

  • C-h l
    • view-lossages

現在のモード情報を見る。便利

  • C-h m
    • describe-mode

Emacsのニュースを見る

自分のシステムでたどれる全てのパッケージ情報を階層的にたどれる

  • C-h p
    • finde-by-keyword

ヘルプの終了

  • C-h q
    • help-quit

Infoを起動する

  • C-h r

バッファの構文テーブルを見る

  • C-h s
    • describe-syntax

Emacsチュートリアルを開始する

  • C-h t
    • help-with-tutorial

指定した変数の情報を見る

  • C-h v
    • describe-variables

指定したコマンドのキーバインディングを見る

  • C-h w
    • where-is

インプットメソッドの表示

  • C-h I or C-h C-\
    • describe-input-method

GPLの表示

  • C-h C-c
    • describe-copying

FSFEmacsを注文する方法の表示

  • C-h C-d
    • describe-distribution

EmacsのPROBLEMSの表示

  • C-h C-e

Emacsに関するFAQを見る

C-h n と同じ Emacs-newsを見る

  • C-h C-n

Gnu Projectについて見る

  • C-h C-p
    • describe-gnu-project

EmacsのToDoを見る

  • C-h C-t

Emacsに関わる保証の表示

  • C-h C-w
    • describe-no-warrantly

バッファ関連

デフォルト設定でもかなり便利

指定されたバッファに移動

  • C-x b
    • switch-to-buffer

次のバッファに移動(設定変更する事多し)

  • C-x
    • next-buffer

前のバッファに移動

  • C-x
    • previous-buffer

バッファリストの表示

  • C-x C-b
    • list-buffers

指定したバッファの削除

  • C-x k
    • kill-buffer

指定バッファを確認しつつ保存

  • C-x s
    • save-some-buffers

全てのバッファを確認しつつ削除

  • なし
    • kill-some-buffers

バッファの名前を変更する

  • rename-buffer
    • バッファの名前を指定されたものに変更する

バッファリスト関連

MRキー

  • .
    • 表示されているバッファ
  • %
    • 読み込み専用バッファ
  • >
    • 表示マーク
  • *
    • 変更されているバッファ
  • D
    • 削除マーク
  • S
    • 保存マーク

コマンドリスト

  • n, C-n
    • 下移動
  • p, C-p
    • 上移動
  • d, k
    • 削除フラグをたてる
  • s
    • バッファに保存フラグをたてる
  • u
    • バッファのフラグを削除する
  • x
    • マークされたバッファについて1文字コマンドを実行する
  • Del
    • バッファのマークを削除する
  • ~
    • バッファを未修整としてマークする
  • %
    • バッファを読み込み専用を切り替える
  • 1
    • バッファをフルスクリーン表示する
  • 2
    • このバッファと次のバッファを上下両方のウインドウに表示
  • f
    • バッファリストの代わりにこのバッファを表示する
  • o
    • 現在のバッファを他のウインドウに表示
  • m
    • バッファ表示マークをつける
  • v
    • mでマークされたバッファの表示。 ウインドウは自動的に作られる
  • q
    • バッファリストの終了

Window関連


左右に二分割

  • C-x 2
    • split-window-vertically

上下に二分割

  • C-x 3
    • split-window-horizontally

他のウインドウへ移動する

  • C-x o
    • other-window

ウインドウを削除する

  • C-x 0
    • delete-window

自分以外のウインドウを削除する

  • C-x 1
    • delete-other-window

ウインドウの高さを1つ広げる

  • C-x ^
    • enlarge-window

ウインドウの高さを1つ縮める

  • なし
    • shrink-window

ウインドウの幅を1つ広げる

  • C-x }
    • enlarge-window-horizontally

ウインドウの幅を1つ縮める

  • C-x {
    • shrink-window-horizontally

ウインドウよりもバッファが小さい場合にウインドウの高さをバッファに合わせて縮める

  • C-x -
    • shrink-window-if-larger-than-buffer

全てのウインドウの大きさを均等にする

  • C-x +
    • balance-window

他のウインドウをスクロールする

  • C-M-v
    • scroll-other-window

他のウインドウにファイルを読み込む

  • C-x 4 f
    • find-file-other-window

他のウインドウに表示するバッファを選択する

  • C-x 4 b
    • switch-to-buffer-other-window

現在のウインドウと次のウインドウを比較し、最初の相違点を表示する

  • なし
    • compare-window

指定したバッファの全てのウインドウを削除する

ウインドウを右にスクロール

  • C-x >
    • scroll-right

ウインドウを左にスクロール 

    • C-x
    • scroll-left

フレーム関連コマンド

現在のバッファで新しいフレームを作成する

  • C-x 5 2
    • make-frame

次のフレームに移動する

  • C-x 5 o
    • other-frame

現在のフレームを削除する

  • C-x 5 0
    • delete-frame

新しいフレームを作成し、ファイルを読み込み専用で開く

  • C-x 5 r
    • find-file-read-only-other-frame

新しいフレームを作成し、そこに他のバッファを表示する

  • C-x 5 b
    • switch-to-buffer-other-frame

Emacs Shell

Shellの起動

  • なし
    • shell

現在のジョブを中止する

  • C-c C-c
    • comint-interrupt-subjob


1文字削除 or 末尾だとEOFの送信

  • C-d
    • comint-delchar-or-maybe-eof

EOFの送信

  • C-d C-d
    • comint-send-of

現在の行の削除

  • C-c C-u
    • comint-kill-input

ジョブの一時中断

  • C-c C-z
    • comint-stop-subjob

直前のジョブを取り出す

  • M-p
    • comint-previous-input

直後のジョブを取り出す

  • M-n
    • comint-next-input

コマンドの実行

  • Enter
    • comint-send-input

コマンドの補完

  • Tab
    • comint-dynamic-complete

最後のコマンドの出力を削除する

  • C-c C-o
    • comint-kill-output

出力の1行目をウインドウの一番上に表示する

  • C-c C-r
    • comint-show-output

出力の最終行をウインドウの一番下に表示する

  • C-c C-e
    • comint-show-maximum-output

直前のコマンドへ移動する

  • C-c C-p
    • comint-previous-prompt

直後のコマンドへ移動する

  • C-c C-n
    • comint-next-prompt

Emacs Diredまとめ

Diredとか便利だし

Dired起動

  • C-x d
    • dired

マークファイルに正規表現検索

  • A
    • dired-do-search

バイトコンパイルする

  • B
    • dired-do-byte-compile

コピー

  • C
    • dired-do-copy

削除フラグ

  • d
    • dired-flag-file-deletion

確認後即座に削除

  • D
    • dired-do-dekete

ファイルの編集

  • e
    • dired-find-file

ファイルの編集

  • f
    • dired-advertised-find-file

ディレクトリの再読み込み

  • g
    • revert-buffer

グループ権限の変更

  • G
    • dired-do-chgrp

Diredのヘルプ

  • h
    • describe-mode

ハードリンク作成

  • H
    • deired-do-hardcopy

サブディレクトリ一覧表示

  • i
    • dired-maybe-insert-dir

表示から行を削除

  • k
    • dired-do-kill-lines

ファイルのロード(elisp)

  • L
    • dired-do-load

マーク

  • m
    • dired-mark

権限変更

  • M
    • dired-do-chmdo

次の行へ移動

  • n
    • dired-next-line

もう1つのウインドウにファイルを読み込み、移動する

  • o
    • dired-find-file-other-window

もう1つのウインドウにファイルを読み込むが移動しない

  • C-o
    • dired-display-file

ファイルの所有者を変更する

  • O
    • dired-do-chown

上の行へ移動する

  • p
    • dired-previous-line

ファイルの印刷を行う

  • P
    • dired-do-print

Diredを抜ける

  • q
    • quit-window

マークを設定したファイルに問いあわせ置換をする

  • Q
    • dired-do-query-replace

ファイル名の変更をする

  • R
    • dired-do-rename

シンボリックリンクを作成する

  • S
    • dired-do-symlink

Diredのソートをする

  • s
    • dired-sort-toggle-or-edit

マークのトグル

  • t
    • dired-toggle-marks

マークをとる

  • u
    • dired-unmark

ファイルを読み込み専用で表示する

  • v
    • dired-view-file

ファイル名を切るリングへコピーする

  • w
    • dired-copy-filename-as-kill

削除マークが設定されていたら削除を行う

  • x
    • dired-do-flagged-delete

fileコマンドでファイルタイプを表示する

  • y
    • dired-show-file-type

ファイルを圧縮、展開する

  • Z
    • dired-do-compress

バックアップファイルにフラグをたてる C-u ~で消す

  • ~
    • dired-flag-backup-files

自動保存ファイルにフラグをたてる C-u #で消す

  • #
    • dired-flag-auto-save-files

削除するためごみファイルにフラグをたてる

  • &
    • dired-do-garbage-files

バックアップファイルにフラグをたてる

  • .
    • dired-clean-directory

そのファイルとマークの位置に有るファイルの比較

  • =
    • dired-diff

ファイルとバックアップファイルの比較

  • M-=
    • dired-backup-diff

現在のファイルやマークに指定コマンドの実行をする

  • !, X
    • dired-do-shell-command

ディレクトリの作成

  • +
    • dired-create-directory

次のディレクトリへ移動する

  • >
    • dired-next-dirline

前のディレクトリへ移動する

    • dired-prev-dirlien

新しいDiredバッファへ親ディレクトリを読み込む

  • ^
    • dired-up-directory

現在のディレクトリ、サブディレクトリの表示きりかえ

  • $
    • dired-hide-subdir

全てのサブディレクトリを名前だけ残して非表示にする

  • M-$
    • dired-hide-all

次のサブディレクトリに移動(i使用時)

  • C-M-n
    • dired-next-subdir

前のサブディレクトリに移動(i使用時)

  • C-M-p
    • dired-prev-subdir

ディレクトリへ移動(i使用時)

  • C-M-u
    • dired-tree-up

始めのサブディレクトリに移動(i使用時)

  • C-M-d
    • dired-tree-down

マークを変更する

  • * c
    • dired-change-marks

すべてのファイルからマークを取り除く

  • * !, M-DEl
    • dired-unmark-all-files

実行可能ファイルにマークを設定(C-u *でとりのぞく)

  • * *
    • dired-mark-executables

ディレクトリにマークを設定する(C-u /でとりのぞく)

  • * /
    • dired-mark-directories

シンボリックにマークを設定する(C-u @でとりのぞく)

  • * @
    • dired-mark-symlinks

Dマークされた次のファイルに移動

  • M-}
    • dired-next-marked-files

Dマークされた前のファイルに移動

  • M-{
    • dired-prev-marked-files

正規表現で削除フラグを設定

内容が正規表現にマッチするファイルにマークを設定する

  • % g
    • dired-mark-files-containing-regexp

マークを設定したファイルのファイル名を小文字にする

  • % l
    • dired-downcase

正規表現にマッチするファイル名を変更

マークを設定したファイルのファイル名を大文字にする

  • % u
    • dired-upcase

まとめ的ななにか

全般的に基本的なコマンドを列挙したので、特殊なモードのコマンドは割愛しています. Shell, Diredあたりはよく使うんで入れておきました。 anythingとかその他様々なelispが便利なのはわかるがとりあえず基本機能の再確認的な意味も含めて。

まぁ各モードのコマンドはC-h mあたりをみると色々出てくるのでそれを参考にするとよいかと

他には#nanka#がいざという時にM-x revert-fileあたりで復元機能として役立つとかも知っておくといいやも.

参考