emacsコマンドチートシート的なもの

emacsのわりと使うコマンドをメモってテキストファイルにしていた時期がある。
操作に慣れるまではこれを見てやってた。
もはやいらなくなったけど一応貼っておく。


emacs操作
C-g 止める
ESC ESC ESC 汎用抜け出しコマンド
C-z emacsを一時的に抜ける(ターミナルで"fg"か"%emacs"で戻って来れる)

ウィンドウ/バッファ/ファイル操作
C-x 0 現在のウィンドウを閉じる
C-x 1 今カーソルがあるウィンドウだけにする
C-x 2 ウィンドウを2つに分割する
C-x 4 C-f 下半分で別のファイルを開く
C-M-v 2つウィンドウがあるときカーソルがない方のウィンドウを下に送る
C-x o 別のウィンドウにカーソルを移す

C-x C-w カレントバッファを別名で保存
C-x k kill current buffer
C-x C-b バッファリストを見る
C-x b バッファ名を指定してバッファ移動
C-x s いずれかのバッファをセーブ

C-x C-q ファイルを読み取り専用にする(もう一回C-x C-qで戻る)
C-x C-f ファイルを開く
M-x recover-file 自動セーブファイルを復帰
M-x fundamental-mode fundamental modeで編集
M-x rename-buffer バッファ名を変える

テキスト操作
C-SPC マーカーセット
C-h 送りデリート
C-x h バッファ全体をリージョン
C-x C-o 空白行を削除
C-w リージョンをkill(カット)
M-w リージョンをcopy
C-y ペースト
M-y ペーストをさかのぼる(C-yの直後のみ)
C-x u / C-_ UNDO
C-g C-x u / C-g C-_ REDO
C-t カーソル直後の文字と直前の文字を入れ替え
C-s / C-r 前に検索/後ろに検索
C-u (number) (command) commandをnumber回繰り返す
M-x goto-line 指定した行へ移動
M-x replace-string 置換(全部)
M-% 問い合わせ置換(カーソル以降)


c++モード
C-c C-q c++モードで関数全体をインデントする
M-x comment-region リージョンをコメントアウト
M-x uncomment-region リージョンをコメントアウト解除
C-M-n/C-M-p 対応する次の/前の括弧に移動

バッファリスト操作
p / n バッファ内を上/下に移動
1 カーソル位置のバッファを全画面表示
o カーソル位置のバッファを別画面で表示
f カーソル位置のバッファでバッファリストを置き換え
d カーソル位置のバッファに消去マーク
s カーソル位置のバッファに保存マーク
u マークを取り消す
x マークを実行

ディレクトリエディタ操作
C-x d RET ディレクトリエディタ表示
q ディレクトリエディタ終了
p / n ディレクトリエディタ内を上/下に移動
f / RET カーソル位置のファイルを全画面表示
o カーソル位置のファイルをほかのウィンドウに表示
g 更新
d 削除マーク
# すべての自動セーブファイルに削除マーク
~ すべての自動バックアップファイルに削除マーク
m 単なるマーク
u マークを消す
x マークを実行
^ 上のディレクトリに移動
C カーソル位置のファイルをコピー(マークがあると全部)
R カーソル位置のファイルをリネーム(マークがあると全部)
M カーソル位置のファイルのモードを変更(マークがあると全部)

  1. (directory name) RET ディレクトリを作成

v ファイルチラ見;C-cかqで戻る
ファイルをチラ見の時s インクリメンタル検索
= diff
! そのファイルに対してUNIXコマンドを実行
t マークされてるのとされてないのを入れ替える
M-Del マークを取り除く

ヘルプ操作
M-h m 現在のメジャーモードの説明をする
M-h c (command) そのコマンドのヘルプ
M-h k (command) そのコマンドの詳しいヘルプ
M-h f (function) functionの説明
M-h a (言葉) その言葉を含むコマンド一覧
M-h i オンラインマニュアル

ブックマーク操作
C-x r l ブックマーク一覧を表示
C-x r m カレントバッファをブックマークに追加(diredバッファの場合そのディレクトリを追加)

シェルモード操作
M-x shell シェルバッファを起動
M-x term ターミナルを起動(よくわからない)
M-! ミニバッファでシェルコマンドを実行
C-u M-! カレントバッファに実行したシェルコマンド出力を挿入
M-| リージョンをシェルコマンドの引数に渡す
M-p / M-n コマンドさかのぼったり

マクロ
C-x ( マクロ定義開始
C-x ) マクロ定義終わり
C-x e マクロを実行