こんにちは。バランスボールがいす代わりのnagata(@handlename)です。
emacs、使いこなせてますか? キーバインドも、カーソル移動と終了までは覚えたものの、 結局普通のテキストエディタとして使っていたりしないでしょうか?
それはひじょーーーーーーーーにもったいない!
とはいえ、いきなりいろいろ拡張elispを入れるのは腰が重いかと思います。 と、いうわけで、とりあえずヘルプを引けるようになってみてみませんか?
キーバインドを調べる
M-x describe-bindings
または、
f1 b
現在のモードで使えるキーバインドの一覧を表示します。 なれないうちは常に開いておいて、 モード名で検索したりするといいでしょう。
その行でenterを押すと詳細なヘルプを表示します。
関数の役割を調べる
M-x describe-function [関数名]
または、
f1 f [関数名]
関数のヘルプを表示します。 ネットで探してきて.emacsに貼り付けたはいいものの、 それがなにをするのかわからないときに使うといいでしょう。
変数の役割を調べる
M-x describe-variable [変数名]
または、
f1 v [変数名]
変数のヘルプを表示します。 関数のヘルプと同じく、何に使うのか調べるときに使うといいでしょう。
ちなみに、リストの先頭にあるのが関数で、そのほかが変数と考えてOKです。
([関数] [変数1] [変数2])
infoを引く
M-x info-emacs-manual
emacsのマニュアルです。 emacsを使う上で必要なことはほぼすべてここに書いてあります。
日本語がいい!という方はこのあたりをチェック。
チュートリアル
ヘルプとはちょっと違いますが、emacsにはチュートリアルが用意されています。
M-x help-with-tutorial
一通りの操作が覚えられるので、一度目を通しておくといいでしょう。
anything
これまたヘルプとは違いますが、anythingという有名な拡張elispがあります。
抽象的な言い方をすると、 anythingを使うといままで隙間から一部分しかのぞけなかったものが、 窓からのぞくことができるようになります。
上記のページを参考にanythingを入れたら、.emacsに次のように書いてみましょう。
(require 'anything-config)
(define-key global-map (kbd "M-x")
(lambda ()
"Execute emacs commands in anything"
(interactive)
(anything '(anything-c-source-emacs-commands))))
M-xとしたときに新しいバッファが開いて、 入力した文字列に部分一致する関数を一覧表示してくれます。
たとえば文字のサイズを変更したいときは、 とりあえず関係しそうな「font」だとか「scale」だとかを入力してみると、
text-scale-increase
text-scale-decrease
というそれらしいものがすぐに見つけられます。
あるいは先に挙げた3つの関数 (describe-bindings、describe-function、describe-variable) から推測して、「describe」と入力してみれば、 これら以外のヘルプやリファレンスが多数用意されていることがわかるはずです。
このようにうろおぼえだったり全然知らなかったりする機能を探したいとき、 anythingのインターフェイスは非常に強力です。
おわり
ヘルプを引いて快適emacs生活!
便利な機能を知らないがゆえに使わないのはもったいないので、 ぜひぜひヘルプを引きまくって効率アップを図ってみてください。