入門GNU Emacs はじめに〜2章まで まとめ
- 作者: Debra Cameron,James Elliott,Marc Loy,Eric Raymond,Bill Rosenblatt,宮下尚,半田剣一,新井貴之,鈴木和也
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2007/03/12
- メディア: 大型本
- 購入: 14人 クリック: 331回
- この商品を含むブログ (116件) を見る
GNU Emacsに入門しました!
知らなかったコマンド(ほとんどだけど)やTipsをメモメモします。
今回は、
- 1章
- Emacs入門
- 2章
- テキストの編集
までです。
オライリーだから結構身構えていたけど、ウィンドウの写真でコマンドの使用前,使用後が載っていたり、節ごとにコマンドが表にまとめられていて、思いのほか読みやすい。これはいい「入門」!
ファイルを開く,保存する
キー操作 | 動作 |
---|---|
C-x C-v | ファイルを開き直す |
C-x i | ファイルの挿入 |
C-x C-w | 名前を付けて保存 |
カーソルの移動
キー操作 | 動作 |
---|---|
M-{ | 前の段落へ |
M-} | 次の段落へ |
M-x goto-line Enter n | n行目へ移動 |
M-x goto-char Enter n | n文字目へ移動 |
M-x goto-lineはデバッグとかする時に使えそう。
コマンドの繰り返し
キー操作 | 動作 |
---|---|
M-30 C-n | 30行下へ移動 |
C-u 30 C-n | 同上 |
C-u C-n | (値を省略すると)4行下へ移動 |
C-u C-u C-n | 16行下へ移動(C-u1回で*4) |
C-uで値を省略すると4回実行で、C-uを複数書くと*4されていくのは初めて知った。ちゃんと使えば便利そう!
テキストのマーク,削除,移動,コピー
キー操作 | 動作 |
---|---|
Meta - C-k | 行の先頭からカーソル位置までを削除 |
M-k | 次の文を削除 |
C-x h | バッファ全体をマーク |
C-x C-x | カーソルとマークの位置を交換 |
C-w | リージョン(選択領域)をキル(カット) |
M-w | リージョンをコピー |
C-y M-y | 以前の削除内容を呼び出し(以降M-y繰り返し) |
M-x set-variable Enter kill-ring-max Enter n Enter | キルリングのサイズをnに変更(デフォルトでは30) |
Meta - C-kは、「メタキーとハイフン(-)を同時に押したあと、Ctrlとkを同時に押す」という意味。今までC-kしか知らなかったから、これは重宝する。
Carbon Emacsを使っている場合、C-Spaceでマークを設定しようとするとMacのSpotlightが起動してしまいます。
C-@を使うのも手ですが、システム環境設定からSpotlightのキーボードショートカットを変更すれば、EmacsでC-Spaceが使えるようになります。
クリップボードへのテキスト入力
Linux | Windows | Mac OS X(GUI) | Mac OS X(CUI) | |
---|---|---|---|---|
クリップボードへのコピー | しない | する | する | しない |
キルリングへのコピー | する | する | する | しない |
クリップボードと、Emacsでのキルリングは似てるようで違うことを意識しないといけませんね。
GUIのEmacsならそれほど気にしなくても良さそうだけど。
誤った文字順の修正
キー操作 | 動作 |
---|---|
C-t | カーソル位置とその前の文字を入れ替える |
M-t | 単語を入れ替える |
C-x C-t | 行を入れ替える |
地味に便利!
アルファベットの修正
キー操作 | 動作 |
---|---|
M-c | カーソル位置のアルファベットを大文字にする |
M-l | カーソル位置からの単語全体を小文字にする |
M-u | カーソル位置からの単語全体を大文字にする |
Meta - コマンド | 直前の単語に対して上記のコマンドを実行 |
Meta - M-c なら、直前の単語の先頭を大文字にすることができます。カーソル位置を気にせずに修正できるという訳ですね!
その他
キー操作 | 動作 |
---|---|
C-_ or C-/ or C-x u → 任意の方向へカーソル移動 or C-g | Redo(Undoの方向が変わる) |
Emacsには形式的にredoコマンドはないけど、undoの「方向を変える」ことで似たようなことができます。
例えばC-/でundoを繰り返し行って戻りすぎてしまった場合、一旦カーソルを移動させるかC-gを入力します。その後C-/で再びundoを実行すると、方向が変わっているのでundoを逆順に辿れます。