Emacsのキーバインド覚書

emacs起動_

ターミナルで

% emacs &

.emacsを読み込まずにemacsを起動する場合は

% emacs -q &

emacs終了_

  • C-x C-c

カーソル移動_

  • C-p: 1 行上に移動
  • C-n: 1 行下に移動
  • C-f: 1 文字前に移動
  • C-b: 1 文字後に移動
  • C-a: 行の先頭に移動
  • C-e: 行の末尾に移動
  • M-f: 1 単語前に移動
  • M-b: 1 単語後に移動
  • C-v: 1 画面下に移動
  • M-v: 1 画面上に移動
  • M-<: バッファの先頭に移動
  • M->: バッファの末尾に移動
  • C-g: 現在の操作を終了

ファイル操作系_

  • C-x C-f:ファイルを開く
  • C-x C-s(save-buffer):現在のバッファをディスクに保存する。
  • C-x C-w:現在のバッファを新しいファイル名で保存する。
  • C-x i:ファイルの挿入
  • C-d:ディレクトリを開く

編集_

  • C-x u あるいは C-x _(undo):最後の操作を取り消す。
  • C-s(isearch-forward):文字列を前方検索する。
  • C-r(isearch-backward):文字列を後方検索する。
  • M-% (replace-string):文字列の検索と置換を行う。
  • M-x replace-regexp:正規表現を使って、検索と置換を行う。
  • M-x goto-line:指定した行へ移動する
  • C-d(delete):カーソルの文字を削除
  • C-h(backspace):カーソルの一文字前を削除。設定されていないときもある。

    その場合は、.emacsに以下を加える。

    (global-set-key "\C-h" 'delete-backward-char)
    
  • M-d:カーソル位置の単語をカット
  • C-k:カーソルの位置から行末まで削除(ただし、削除した部分はC-yで貼り付け可能)
  • C-SPC:(Controlキーを押しながらスペースキー):マークセット
  • C-w (cut):マーク部分からカーソル位置までを切り取り
  • M-w (copy): マーク部分からカーソル位置までをコピー
  • C-x h:全範囲選択(すべてを選択)
  • C-y(paste):貼り付け

よく使う流れは、

  1. C-aで行頭に移動
  2. C-SPCでマークセット
  3. C-eで行末に移動
  4. M-wでコピー
  5. 貼り付けたい場所にカーソルを移動させて
  6. C-yで貼り付け。
  7. 失敗したと思ったらC-u

文書の整形_

  • M-c (単語先頭の文字を大文字にする)
  • C-x C-u (マークから現在位置までの範囲の文字を大文字にする)
  • M-u (単語を大文字にする)
  • C-x, C-l (マークから現在位置までの範囲の文字を小文字にする)
  • M-l (単語を小文字にする)
  • M-x goto-line (入力した行番号へ飛ぶ)
  • M-x tabify (マーク位置から現在位置までのスペースをタブに変換)
  • M-x untabify (マーク位置から現在位置までのタブをスペースに変換)
  • M-q:空行によって区切られたパラグラフを自動改行
  • M-x comment-region:リージョン内をまとめてコメントアウト。マイナーモードによりコメントアウトのシンボルが変わる(かも)
  • C-u M-x comment-region:リージョン内をまとめてコメントイン(コメントアウトをはずす)
  • 矩形処理を用いたコメントアウト(参考:Meadow/Emacs memo: コピー,切り取り,貼り付け関連:矩形処理
    • C-x r t:矩形部分の前に文字を付け加える
    • C-x r k:矩形部分をカット
    • C-x r y:矩形部分をペースト
  • C-M-\ :一括インデント

バッファの移動_

  • C-x b
  • C-x C-b

使い方は、今開いているバッファからさっき開いていた別のバッファに移動したいとき、

  1. C-x C-bでバッファ一覧を表示
  2. C-x bでバッファ選択(タブで補完が効く)

ウィンドウ分割_

  • C-x 2:2行に分割
  • C-x 3: 2列に分割
  • C-x 0:カーソルのあるほうの分割したウィンドウを閉じる
  • C-x 1:カーソルのないほうの分割したウィンドウを閉じる
  • C-x 5 2:もう一つウィンドウを立ち上げる

日本語モード_

  • C-\ (Wnnを使う場合)
  • C-o (Cannaを使う場合)
  • C-i (文節を一文字縮める)
  • C-o (文節を一文字伸ばす)
  • M-x egg-toroku-region (キルリングに入っている文字列を辞書に登録)

その他_

文字コードを変更して読みこみなおし_

  • C-x RET r:文字コードを変更して読みこみなおし
    • ちなみに文字コードの***-unix, ***-mac, ***-dosの意味は改行コードがそれぞれunixi式(LF)、mac式(CR)、dos式(CRLF)という意味。

操作の中止_

  • C-g:操作の中止。とりあえず困ったらC-g

文字数と行数カウント_

  • M-=:リージョン内の文字数と行数を数える

実際に使う場合には

  1. C-SPCで文字数をカウントしたい範囲の先頭を指定
  2. カウントしたい範囲の末尾にカーソルを合わせてM-wでリージョンの指定
  3. M-=。

ワード数(英語)のカウント_

C-SPCで文字数をカウントしたい範囲の先頭を指定、カウントしたい範囲の末尾にカーソルを合わせてM-wで範囲の指定。 C-x n nで指定した範囲のみウィンドウ表示。その後、M-x how-many RET 正規表現 RET。英語のみの場合にはM-x how-many RET \w+ RET。その後、C-x n w。

一括インデント_

  1. インデントしたい範囲の端にカーソルを置く
  2. C-Spaceでマーク
  3. インデントしたい範囲の他方の端までカーソル移動
  4. C-M-バックスラッシュまたは、M-x indent-regionを実行(但し前者はバックスラッシュの代わりに円マークしか入力できずエラーになるよう?)

ウィンドウサイズの変更_

いくつか方法がある

Ubuntu 12.10上のGNU Emacs 23.3.1で確かめて確かにウィンドウサイズが変わった方法は以下のとおり。

起動時にウィンドウサイズオプションをつける_

geometryタグをつける。「横幅(文字数)x縦幅(文字数)」というフォーマット。文字さイズによってウィンドウサイズも変わるので注意。

% emacs -geometry 80x24 &

これを .cshrchや.zshrcなどのシェル設定ファイルにてaliasにしておく。例えば、.zshrcの場合。ファイルの末尾に以下を追加する。

alias emacs='emacs -geometry 80x24'

その後、反映させる。

% source ~/.zshrc

.Xresourcesで設定する。_

~/.Xresourcesがない場合は作成する

% touch ~/.Xresources

次に以下を書き加える。この例では横幅100文字分、縦幅20文字分としている。

Emacs23*geometry: 100x20

反映させる。その後、確認する。「Emacs23*geometry: 100x20」が表示されたらちゃんと読み込まれている。

% xrdb -merge ~/.Xresources
% xrdb -query
Emacs23*geometry:	100x20

emacsを起動してみる。

% emacs &

Wondurlust_

  • フォルダー内のメッセージの検索: shift + v
  • ゴミ箱を空にする:shift + e
  • カーソルが合わせてあるフォルダのメッセージを同期:shift + S

参考リンク_