こんにちは、hnwです。今日の昼食もなぜかカレーでした。
さて、今日は私の普段使っているエディタ、Emacsに関するTIPSです。
私はカレー以外で言うとEmacsが大好物です。私のEmacs利用歴は既に10年以上になってしまいました。あまりにもEmacsに毒され過ぎているため、Ctrl+aで全選択されるような設定のPCを使っているとPCを窓から投げ捨てたくなります(もちろんCtrl+aなら行頭にカーソル移動して欲しいのです)。
そんな病的にEmacs大好きな私ですが、デフォルトのEmacsの挙動で非常に気に入らない点が一つあります。それは、Ctrl+hがhelp-commandに割り当てられていることです。
Ctrl+hはシェル上ではBackSpaceキーと同じくカーソルの直前の文字を1文字消すキーです。また、大抵のEmacs使いにとってBackSpaceキーよりCtrl+hの方が打ちやすいキーのはずです(Ctrlキーを押し慣れているため)。この2点を考えればCtrl+hをBackSpaceの意味にするのは全く自然なことだと思うのですが、なぜデフォルトのEmacsがCtrl+hをヘルプの意味にしているのか非常に不思議です。
もっとも、そのあたりはEmacsの中の人も心得ているのでしょう、私が最初にEmacsを触るよりずっと以前からterm/bobcatというライブラリがあり、Ctrl+hでの1文字削除を実現してくれます。
ただし、Emacs22に含まれるbobcatは使い方が変わったようで、昔と同じ設定のままでは使えません。私も友人に教わるまでどうしたものかわからず、ただ困っていました。そんな不幸な人が他にもいるといけないので、私が現在.emacsファイルにどう書いているかを紹介します。
(load "term/bobcat") (when (fboundp 'terminal-init-bobcat) (terminal-init-bobcat))
昔は先頭1行だけで良かったのですが、最近のbobcatは明示的にterminal-init-bobcatを呼び出さないといけなくなったようです。私はできるだけ同じ.emacsを各所のサーバで利用したいと考えているので、上のように回りくどいことをしてEmacs21でもEmacs22でも動くように書いています。Ctrl+hで1文字削除したい人はこれで安心ですね。
また、今までCtrl+hを使っていなかった人でも、この機会にCtrl+hを試してみてはいかがでしょうか。BackSpaceキーを使わなくなることでホームポジションから手を離す率を下げることになり、最終的には入力効率アップに繋がるのではないかと思います。お勧めですよ。

コメント / トラックバック 1 件
[...] なのでオープンラボラトリの「Ctrl+hでEmacsのヘルプが見たくない人のための設定」という記事を参考にして、shellと同じように使うためにC−h [...]
コメントする