初心者Emacsユーザーの憂鬱

驚愕はいつ出るんでしょうか……にわかファンではありますが、原作全巻読んでる身としては、続きが気になる今日この頃です。
ただ、一つ言い加えておくと、僕が観た作品の順番は、大体ですが

  1. 逃げちゃだめだ……
  2. かぁいい
  3. わざとじゃない!?
  4. 特盛りっ!?
  5. ギー太!
  6. その幻想をぶち壊す!(正式には壊すではないんですが、念のためこちらにしときます)
  7. ビリビリ言うな!

って具合(この間にも様々ありましたが)なもので、リアルタイムで見てたわけじゃないんですよね……
何の話かさっぱりだという人は、そろそろ本題に移るので、今しばらくお待ちいただくか、冷たい視線を投げかけながらスクロールしてください。
その内、原作を手に取ったのは、今のところ、吸血鬼と神様とカスタネットだけです。まあ、それだけ出せば十分じゃない?と言われるかもしれません。むしろ、出さなくて良くね?と言われるかもしれませんが、もう過ぎた話です。
人は過去ではなく、未来を見つめて生きていくものです。
とは言うものの、ちゃんと反省だってしてるんです。
「何で、もっと早く買わなかったんだろう……」
って。

まあ、そんな感じで。
未来を見つめながら、次は打ち止めの原作でも読もうかと狙ってます。
ぶっちゃけ、友達から勧められてみても、リアルタイムでの盛り上がりほどには楽しめないんですよ。
その作品が少しでもおもしろいと思えた場合、何が心残りってそれだけなんです。
何かを始めるのに、遅すぎるということはない。
みたいな言葉がありますが、僕はそれを「遅れたなら、その分だけ取り返せ」と捉えていますが、取り返せないものもありますよね。

そういう訳で、閑話休題

やっと本題です:

実はこれ違うカテゴリにするつもりだったんですが、3分の……いや4分の1ほどはEmacsの話題なので、このカテゴリに落ち着きました。
前半のくだりで不愉快な気分になった方には申しわけありませんが、この日記まがいのメモは、こういう雰囲気で構成されています。なので、自己防衛の意識と寛大な心を持って、ご覧頂けると幸いです。
さて、今度こそ本題。

今回はEmacsの小ネタです。小ネタというか、まあ初心者が自分用にメモをまとめたいと思って書いた物とお考えください。概要は、

  • Ctrl-Tab、Ctrl-shift-Tabでバッファ切り替え
  • マウスでスクロール
  • 最低限抑えておきたいキーバインド
  • その他のメモ

です。相変わらず、中身の無さが「ぱない」です。まるで、僕の頭のようですね。

※Emacs2.3を動作環境として想定

Ctrl-Tab、Ctrl-shift-Tabでバッファ切り替え:

Emacsの設定ファイル、分けている人でないのなら、.emacl.elに以下を記述します。

(global-set-key                                   ; バッファ切替
 [(control tab)] 'next-buffer)
(global-set-key                                   ; バッファ切替
 [(control shift iso-lefttab)] 'previous-buffer)

これだけです。これで、タイトル通りのバッファ切り替えが可能になります。

マウスでスクロール:

邪道ではありますが、一応メモしときます。と言いつつ、近頃はこの機能使ってないんですけどね。当初の目標として、Emacsを使うときはマウスを使わないというのがあるので、その余波です。

(global-set-key
 [(mouse-4)] 'scroll-down)
(global-set-key
 [(mouse-5)] 'scroll-up)

最低限抑えておきたいキーバインド

これだけ使えるようになれば、それなりに作業効率あがるんじゃないかって思ってるやつです。ちなみに、僕の設定は上記に加えて、

(global-set-key                                   ; バッファ先頭へ
 "\M-<" 'beginning-of-buffer)
(global-set-key                                   ; バッファ末尾へ
 "\M->" 'end-of-buffer)
(global-set-key                                   ; 任意行へ
 "\M-g" 'goto-line)
(global-set-key                                   ; 改行+インデント
 "\C-m" 'newline-and-indent)
(global-set-key                                   ; 改行
 "\C-o" 'open-line)
(global-set-key                                   ; リージョンインデント
 "\C-ci" 'indent-region)
(global-set-key                                   ; backspace
 "\C-h" 'backward-delete-char-untabify)

となっています。ここに記したもの+基本的なカーソル移動、リージョン選択、カットとコピーとペーストなどは割愛するとして。

では、列記。
※Ctrl-[で[ESC]代用。[ESC]は遠いよって、いつもこっち使ってます。

  • C-x [RET] f:[RET]はReturn、つまりEnterキー。これはバッファの文字コードを指定するのに使う。
  • M-q:fill-paragraph、段落を詰め込む。
  • M-=:文字数カウント。ただし、改行もカウントしたりするので注意。

また、anthy.elで日本語入力中は、

  • l:半角入力モードへ
  • C-j:半角入力から日本語入力へ
  • q:カタカナ入力と日本語入力の切り替え。押す毎に変わる。
  • C-q:半角カタカナ入力と日本語入力の切り替え。
  • /:日本語入力中、この後に続けて(エンターなどを入力せずに)書くと、半角英数入力となります。

ちなみに、EmacsUIMなどの入力メソッドではなく、anthy.elを使いたいなら、

XMODIFIERS=@im=none emacs

で起動するようにするか、これでエイリアス作っときます。

その他のメモ:

別に分ける必要なかった気もしてきましたが、いいにしときましょう。

  • C-x 1:バッファを1つだけ表示します。
  • C-x 2:2つのバッファをウィンドウを縦に分割し(上下に分け)て表示します。
  • C-x 3:2つのバッファをウィンドウを横に分割し(左右に分け)て表示します。
  • C-x o:分割したバッファを行き来します。

大体、こんな感じです。これだけでも自然に使えるようになると、メモ帳とかでプログラミングしてた頃には戻れません。
ちなみに、windowsではxyzzy派です。