Emacs よく使うコマンドまとめ

よく使うコマンドたちの備忘録。

コマンドの基本的な打ち方

  • C-uなどと書くと、Controlキーと"u"を一緒に押します。
  • C-u 0となっているときは、一度C-uを押してから指を離して、"0"だけ押します。
  • M-xなどと書くと、「メタエックス」などと呼ばれ、alt (option) キーと"x"を一緒に押します。
  • とにかくコマンドを中止したいときはC-gを押しておけばOK。下のミニバッファにQuitと表示される。

カーソル移動

  • C-u 0 C-l : 現在のカーソルの位置が画面の一番上に来るようにする
  • C-u -1 C-l : 現在のカーソルの位置が画面の一番下に来るようにする
  • C-l : 現在のカーソル位置が画面の中央に来るようにする
  • C-v : 次の画面に進む(スクロールする)
  • M-v : 前の画面に進む(スクロールする)

検索

  • C-s : いわゆる"i-search forward"。現在のカーソルの位置から順番に検索する。次の候補を探したいときはもう一度C-sを押せばいい。C-sしまくっていると2巡目に入る("wrapped i-search")。ウィンドウをクリックすると検索は終了する。検索を中止して元の位置に戻りたいときはC-gでよい。
  • C-r : "i-search backward"。現在のカーソル位置から逆順に検索する。詳細は上に同じ。
    • とても便利なことに、C-s をなんども押して検索している途中で C-r を押すと一つ前の検索結果にヒットするし、C-r で該当するものを探している時に C-s を押しても大丈夫。

置換

  • M-% : 検索でヒットした全ての場所で置換するか問われるので置換するならy、しないならn、置換をやめるならqと答える。M-x query-replaceでもよい。M-x queくらいまで打ってからTABを押すとあとは補完してくれる。検索する文字列を入力してRET、置換したい文字列を入力してRETと打てばよい。
  • M-x replace-string : 現在のカーソル位置以降で検索にヒットするものを問答無用で全部置換する。"replace all"みたいな気持ち。
  • M-x replace-regexp : 入力は正規表現を受け付ける。これの何が嬉しいかというと、「行頭の"a"だけ消したい」とか「全ての行末に"!"を追加したい」とか「TABを一気に別の文字に変換したい」のような、不可視文字に対する操作だって楽々できるところ。
    TODO: 正規表現の各コマンドをメモしておく
  • M-x untabify : 選択した範囲内のタブを全てスペースで置き換える。タブ幅などの見た目は変わらないのでとてもよい。
    参考: タブをスペースに変換する(untabify) - かわちょ日記

コメントアウト

行数の表示

  • M-x linum : 画面の左側に行番号を表示する

ウィンドウ分割

  • C-x 2 : 縦に2分割
  • C-x 3 : 横に2分割
  • C-x 0 : 分割をやめる

バッファ

qiita.com