2009-06 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
目次 / 第1回 第2回 第3回 第4回 第5回 第6回 第7回 第8回 第9回
高速なカーソル移動は、エディタを使う上で重要なポイントになります。
上下左右以外の移動手段を無意識に使えるようになることが、高速化のコ
ツだと思います。
※「emacs 雑記」の motion に触発されて書いてみましたが、かなりパク
リになってしまいました。
- それぞれ、Ctrl-p, Ctrl-n, Ctrl-b, Ctrl-f に割り当てられています。
- 十字キーでも移動できますが、こちらの方がホームポジションからの距
離が短いので効率が良いはずです。
- 前置き引数を付けると、「何文字だけ移動」とか「何行だけ移動」とか
出来ます。
Ctrl-u Ctrl-f | 4 文字右に移動 |
Ctrl-u Ctrl-u Ctrl-n | 16 行下に移動 |
Ctrl-u 7 Ctrl-b | 7 文字左に移動 |
- それぞれ、Meta-b, Meta-f に割り当てられています。
- 英文だと正確に単語単位で移動しますが、日本語だと単語の区切りがお
おざっぱです。ただ、通常の左右移動の高速版と考えると、かなり使えます。
- 私はそれぞれ、Ctrl-, と Ctrl-. に割り当て直しました。
- 行頭は Ctrl-a と Home に、行末は Ctrl-e と End に割り当てられています。
- どちらもかかせません。
- スクロールアップは Ctrl-v と PageDown に、
スクロールダウンは Meta-v と PageUp に割り当てられています。
- 一行だけスクロールしたい場合は、"Ctrl-u 1 Ctrl-v" や
"Ctrl-u 1 Meta-v" のように前置き引数を付けます。もしくは、以下
相当のものをキーに割り当てます。
(scroll-up 1) (scroll-down 1)
- 私はそれぞれ Ctrl-;(一行スクロールアップ) と Ctrl-:(一行スクロー
ルダウン) に割り当てました。
- ウィンドウの中央には Meta-r すると、移動できます。
- 前置き引数を付けると、ウィンドウの上や下にも移動できます。
それぞれ、"Ctrl-u 0 Meta-r" と "Ctrl-u -1 Meta-r" です。もしくは、
以下相当のものをキーに割り当てます。
(move-to-window-line 0) (move-to-window-line -1)
- 私はそれぞれ、Ctrl-q Ctrl-p(上)、Ctrl-q Ctrl-l(中央)、
Ctrl-q Ctrl-n(下) に割り当てました。
- それぞれ、Meta-<, Meta-> に 割り当てられています。
- 実行するとマークセットしてしまうので、
私は、以下相当のものをキーに割り当て直しました。
(goto-char (point-min)) (goto-char (point-max))
- Emacs の検索はインクリメンタルサーチなので、移動手段としても重宝
します。
- Ctrl-s で前方検索、Ctrl-r で後方検索が出来ます。それぞれ Ctrl-u
を付けて実行すると、正規表現検索が出来ます。
- 検索中に Meta-e すると、非インクリメンタルな検索が出来ます。
- ローマ字のまま日本語をインクリメンタル検索するためのツールです。
- 変換なしで日本語を検索出来るため、高速な移動手段となり得ます。
- Meta-m に割り当てられています。
- これは、行頭の空白を飛ばして最初に文字がくる部分に飛ぶ、という
コマンドです。
- あらゆるプログラムではインデントして字下げをしますが、字下げされ
たところに行きたいときに使用します。かなり必須です。
- キーには割り当てられていません。M-x goto-line を実行します。
- 目的の行番号が分かっている時は、この方法で移動します。
- 対になっている括弧の一方から他方に飛ぶ移動です。
- "(" や "{" から、")" や "}" への移動は Ctrl-Meta-n 、その逆は Ctrl-Meta-p です。
- 文字列中の括弧を無視してくれる優れものです。
- 私はそれぞれ、Ctrl-q Ctrl-f と Ctrl-q Ctrl-b に割り当て直しました。
- Ctrl-x Ctrl-x すると、Ctrl-space 等でマークセットした場所にカーソ
ルを飛ばすことが出来ます。もう一度 Ctrl-x Ctrl-x すると、元の場所に
戻ります。
- カーソル移動からは脱線しますが、M-x transient-mark-mode すると、
リージョンに色が付きます。さらに Emacs22 の場合は Ctrl-space を
2 回打つと、このモードになります。
- 標準では用意されていないようですが、個人的に関数を自作し、
"Ctrl-c Ctrl-[", "Ctrl-c Ctrl-]" に割り当てました。
- いつか紹介できるかもしれません。
- キーには割り当てられていません。M-x grep を実行します。
- ヒットした候補は、"Ctrl-x `" で順番にジャンプできます。
- もちろん、*grep* バッファ上で Enter してもジャンプできます。
Emacs22 以降であれば、`n' や `p' で次の候補を別ウィンドウに開けます。
- 似た機能に以下のものがあります。
関数 | 説明 |
M-x occur | 現在のバッファを検索します。 |
M-x grep-find | find と grep を使って検索します。 |
- ある程度の規模のソース群を探索する場合に便利です。
- キー操作は以下のとおりです。
キー | 関数 | 説明 |
Meta-. | M-x find-tag | シンボルの定義部分に飛ぶ。 |
Meta-* | M-x pop-tag-mark | 前の状態に飛ぶ。 |
なし | M-x tags-search | シンボルを検索させる。 |
Meta-, | M-x tags-loop-continue | 次の候補に飛ぶ。(検索状態で実行) |
Ctrl-x 4 . | M-x find-tag-other-window | 定義部分を別ウィンドウに表示。 |
Ctrl-x 5 . | M-x find-tag-other-frame | 定義部分を別フレームに表示。 |
Meta-TAB | M-x complete-symbol | シンボル名の補完(TAGS を読み込んだ状態で) |
なし | M-x visit-tags-table | タブテーブルを読み込み直す。 |
2009-06 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
最終更新時間: 2019-12-03 22:20 JST