入門GNU Emacs(第1,2章)

10月 15th, 2009 admin Posted in Emacs |

入門 GNU Emacs 第3版
入門 GNU Emacs 第3版
posted with amazlet at 09.10.15
Debra Cameron James Elliott Marc Loy Eric Raymond Bill Rosenblatt
オライリー・ジャパン
売り上げランキング: 92953

EmacsかViを使う機会が多くなってきたのでどちらかをちゃんと勉強してみることに。比較してみた結果、やっぱりプログラミングに強いってのと、ViのEscを押すたびに左手を動かすのはだるいと思ったのと、なにより「俺の.emacsは1000行以上あるぞ」「いやいや、むやみに増やすなど愚行の極み。私なぞ100行以下に抑えてありますぞ」的な自慢大会に参加したいのでEmacsを選択。

いまのところカーソル移動と、ファイルの保存とかぐらいはできるのでそこからステップアップして、ウインドウがいっぱい開いたりしても慌てないようになりたい。

第1章、第2章まで読んで知ったこと

・Emacsはファイルを直接編集するのではなく、ファイルの内容を一時バッファに読み込んでバッファの内容を編集する。
・*scratch*はメモ用 *Help*はヘルプメッセージ用でファイルに結びつけられていない特別なバッファ
・特定の言語やフォーマット用にモードというのがある。メジャーモードが一つ選べ、マイナーモードを好きなだけ設定できる。
(Rubyモードならタブを2つにするとか)
・起動時は*scratch*バッファが開く
・上のメニューはF10かM-バッククォートで開く
・コマンドを入れるところはミニバッファという
・すべての入力はコマンドとして扱われる。Aを押しても押されたキーボードの値を挿入しろというコマンドが呼ばれる
・C-cなんちゃらというキーストロークはモード特有の機能と結びつけられることが多い
・ヘルプのバッファ(下のバッファ?)を閉じたいときはC-1
・削除やコピーした文字列はキルリングという領域に格納される(クリップボードではない)

使いそうなショートカット

・C-x C-f ファイルを開く(C-x C-vで今のをやめて別のファイルを開く)
・C-x C-b バッファの切替え
・C-x C-w 名前を付けて保存
・M-> バッファの最後(End)
・M-< バッファの最初(Home)
・C-v 1画面すすむ
・M-v 一画面戻る
・M-x goto-line Enter n 指定行に移動
・C-l カーソル行をウインドウの中央に移動(画面が乱れたときも便利だよ)
・C-d delete(M-d 単語を削除)
・C-yでキリングリングから文字列を呼出(M-yでどんどん遡れる)
・C-x C-xでマーク位置を確認
・C-t 文字の入れ換え(M-t 単語の入れ換え)
・M-x revert-buffer ファイルを最終保存時にもどす
・M-x recover-file 自動保存ファイルにもどす

疑問

・altって押しにくいけどみんなメタキーって何を押してるの?また、その配置、押す指は?
・チルダがつくファイルをつくるのをやめたい(ファイルをきちんと閉じれば消えるの?)((setq backup-inhibited t) — thanks clairvy)
・画面が上下に分割されてしまったときに下のバッファを閉じる方法(追記:C-x 0 –thanks katzkawai)
・日本語入力の切替えをみんなはなにでやってるのか(AnthyだとデフォがCtrl+SpaceでEmacsとかぶる、C-@で代用?)

まとめ

・前書きの出だしが「Emacsは最強のテキストエディタです。」ってのがすごい
・ショートカットを覚えきる自信が無い
・こんな風にまじめにNetbeansの使いかたも勉強したら仕事の効率がかなりアップするだろうにと途中で思った
・がんばって続けたい

2 Responses to “入門GNU Emacs(第1,2章)”

  1. はじめまして。emacs 好きの通りすがりの者です。M-x は execute-extended-command という関数の呼び出しですので、Ctrlキーだけで済ませるには以下のように設定します。この場合、M-x は C-c C-m できます。
    (global-set-key “\C-c\C-m” ‘execute-extended-command)
    画面が上下に分割されたさいに現在カーソルがあるウィンドウ以外を閉じるのに、delete-other-windows という関数があります。以下の設定では、f12 にこの関数を割り当てています。
    (global-set-key [f12] ‘delete-other-windows)
    ちなみに、C-x 0 は、delete-windows という関数で、少し挙動が異なります。

  2. >kitokitoki
    おお、試してみます。参考になります!

Leave a Reply