基本操作

カーソル操作

コマンド

<left>は矢印左を示します。 <right>は矢印右を示します。

  • beginning-of-buffer (M-<)
    • バッファの先端に移動します。
  • end-of-buffer (M->)
    • バッファの終端に移動します。
  • forward-word (M-f)
    • 次の単語に移動します。
  • backward-word (M-b)
    • 前の単語に移動します。
  • forward-sentence (M-e)
  • backward-sentence (M-a)
    • 前のセンテンスに移動します。
  • forward-paragraph (M-})
    • 次の段落に移動します。
  • backward-paragraph (M-{)
    • 前の段落に移動します。
  • forward-sexp (C-M-f or C-M-<right>)
    • カーソルを次の評価式に移動します。
  • backward-sexp (C-M-b or C-M-<lefqt>)
    • カーソルを前の評価式に移動します。
  • mark-sexp (C-M-@ or C-M-SPC)
    • 評価式を範囲選択します。
  • transpose-sexps (C-M-t)
    • 評価式の位置を入れ替えます。
  • kill-sexp (C-M-k)
    • 評価式を切り抜きます。
  • beginning-of-defun (C-M-a)
    • カーソルを関数の先頭に移動します。
  • end-of-defun (C-M-e)
    • カーソルを関数の末尾に移動します。
    • 正確には関数の次の行に移動します。
  • mark-defun (C-M-h)
    • 関数全体を範囲選択します。
  • forward-list (C-M-n)
    • カーソルを括弧内の次のグループに移動します。
    • ただし、カーソルが括弧開きに位置する場合は括弧閉じに一度立ち寄ります。
  • backward-list (C-M-p)
    • カーソルを括弧内の前のグループに移動します。
    • ただし、カーソルが括弧閉じに位置する場合は括弧開きに一度立ち寄ります。
  • backward-up-list (C-M-u)
    • カーソルを1階層上に位置する括弧に移動します。
  • down-list (C-M-d)
    • カーソルを1階層下に位置する括弧内に移動します。

transpose-sexpsの補足

以下は評価式の入れ替えの例です。

1
2
3
                                       この括弧開きにカーソルを合わせる
(when (and (derived-mode-p 'org-mode) (buffer-file-name))
	  (message "hello"))

transpose-sexps (C-M-t) を実行すると次になります。

1
2
3
            入れ替わったことがわかる
(when (and (buffer-file-name) (derived-mode-p 'org-mode))
	  (message "hello"))

資料

バッファ操作

コマンド

  • save-buffer (C-x C-s)
    • バッファの保存
  • list-buffers (C-x C-b)
    • バッファリストを表示
  • switch-to-buffer (C-x b)
    • バッファの切り換え
  • kill-buffer (C-x k)
    • バッファの削除
  • kill-buffer-and-window (C-x 4 0)
    • バッファ削除とウィンドウ消去
  • previous-buffer (C-x C-<left> or C-x <left>)
    • 前のバッファに切り替え
  • next-buffer (C-x C-<right> or C-x <right>)
    • 次のバッファに切り替え

バッファの評価

初期設定ファイルに変更を加え,それをすぐに反映させる場合 (emacsの現在のバッファがinit.elだったのみ有効)

1
M-x eval-current-buffer

変更した部分のみ,すぐに反映させる場合

M-x eval-region

バッファリストのMR欄で表示される記号の意味

Mark function
* バッファの変更を保存していない
. バッファがウィンドウで表示中

資料

TBD.

文字コード

コマンド

  • set-buffer-file-coding-system (C-x RET f coding RET)
    • 表示中のバッファの文字コードを変更します。
  • universal-coding-system-argument (C-x RET c coding RET)
    • バッファを開く際に文字コードを指定します。
  • revert-buffer-with-coding-system (C-x RET r coding RET)
    • 表示中のバッファを文字コードを指定して開き直します。

資料

文字サイズ

コマンド

  • text-scale-adjust (C-x C-+ or C-x C-= or C-x C-- or C-x C-0)
    • 文字サイズを変更する。現在のバッファのみに影響する。
  • global-text-scale-adjust (C-x C-M-+ or C-x C-M-= or C-x C-M-- or C-x C-M-0)
    • 文字サイズを変更する。すべてのバッファに影響する。
    • いずれかのキーバインド入力でミニバッファに文字サイズ変更のキーが表示される。
      • +, = で文字を大きく
      • - で文字を小さく
      • 0 で文字を元の大きさに戻す
      • ESC で終了

資料

ウィンドウ操作

コマンド

  • delete-window (C-x 0)
    • 現在のウィンドウを削除する
  • delete-other-windows (C-x 1)
    • 現在のウィンドウ以外を削除する
  • split-window-below (C-x 2)
    • ウィンドウを上下の2つに分ける
  • split-window-right (C-x 3)
    • ウィンドウを左右の2つに分ける
  • switch-to-buffer-other-window (C-x 4 b)
    • 新しいウィンドウに選択したバッファを表示する
  • delete-frame (C-x 5 0)
    • 現在のフレームを削除する
  • delete-other-frames (C-x 5 1)
    • 現在のフレーム以外を削除する
  • other-window (C-x o)
    • ウィンドウの切り換え
  • enlarge-window (C-x ^)
    • ウィンドウの枠を広げる
  • enlarge-window-horizontaly (C-x })
    • ウィンドウの枠を広げる
  • shrink-window
    • ウィンドウの枠を狭める
    • 既定のキーバインディングはない
    • 筆者は C-x w s v に割り当てた
  • shrink-window-horizontaly (C-x {)
    • ウィンドウの枠を狭める
  • maximize-window
    • ウィンドウを可能な限り最大化
    • 既定のキーバインディングはない
    • 筆者は C-x w } に割り当てた
  • minimize-window
    • ウィンドウを可能な限り最小化
    • 既定のキーバインディングはない
    • 筆者は C-x w { にひとまず割り当てた

資料

テキスト編集

大文字と小文字

Key Action 説明 Note
M-l downcase-word ポイントに続く単語を小文字に変換します
M-u upcase-word ポイントに続く単語を大文字に変換します
M-c capitalize-word ポイントに続く単語を大文字で始めます
C-x C-l downcase-region リージョンを小文字にします
C-x C-u upcase-region リージョンを大文字にします

ソースコード整形

M-x indent-region M-x align-regex M-x align-entire

ファイル検索

M-x grep

ミニバッファにgrepコマンドを入力する。

1
grep --color=auto -nH --null -e

入力例

1
grep --color=auto -nH --null -e Keyword FilePath

実行後、grepバッファが表示される。

grepバッファでの操作

  • n 次
  • p 前
  • g 再検索
  • C-u g 検索内容を変更して検索

M-x find-grep or grep-find

M-x find-grepでミニバッファに以下のコマンドが表示される。

1
find . -type f -exec grep --color=auto -nH --null -e  \{\} +

M-x rgrep or lgrep

find-grepの対話インターフェース。

The commands M-x lgrep (local grep) and M-x rgrep (recursive grep) are more user-friendly versions of grep and grep-find, which prompt separately for the regular expression to match, the files to search, and the base directory for the search. Case sensitivity of the search is controlled by the current value of case-fold-search.

https://www.gnu.org/software/emacs/manual/html_node/emacs/Grep-Searching.html

M-x zgrep or rzgrep or zrgrep

ミニバッファに入力した zgrep を実行してgrepバッファに実行結果を表示する。

The command M-x zrgrep is similar to M-x rgrep, but it calls zgrep instead of grep to search the contents of gzipped files.

https://www.gnu.org/software/emacs/manual/html_node/emacs/Grep-Searching.html

M-x deadgrep

M-x find-grep-dired

指定したキーワードを含むファイルを探して、ファイルを一覧で示す。

矩形選択 - cua-rect.el

  • cua-rectangle-mark-mode (M-RET)

    • 矩形選択の開始
    • org-modeの org-meta-return と競合する可能性あり
  • cua-set-rectangle-mark (C-<return>)

    • 矩形選択の開始
    キーバインド 説明
    M-b 矩形をスペースで埋める
    M-f 矩形を入力された1文字で埋める
    M-i 矩形の各行の数値をインクリメントする
    M-k 矩形をキルする
    M-n 矩形の各行にインクリメントされた数値をフォーマットして挿入する
    M-r 矩形を置換する
    M-t 矩形を入力された文字列で埋める
    M-パイプ 矩形を入力としてシェルコマンドを実行する。引数が指定されている場合はシェルコマンドの結果が矩形に埋まる
    M-/ 矩形の正規表現にマッチする行をハイライト