EmacsでLispを覚える(その2)

前回EmacsでLispも物にするぞ、と気合を入れたら、急にLispというワードが、目に飛び込むようになってきました。意識しすぎて、LispじゃなくてDispでも飛び込んでくるし、Lionとかもう動物なんですけど、Lispに見えます。こんな所にいるはずがないのに探してしまう。これは、もう恋ですね。
そして、Emacs GUIのずっと背景だと思っていた場所に、Lisp-Interactionというツールが現れました。こんな場所にこんなものあったでしょうか。

4行目のEvaluate and Printに着目。これはきっと、Lispプログラムを書いたら、実行してプリントしてくれるやつです。
さっそく、持てる知識でLispプログラミングしてみます。足し算プログラムです。

Lispプログラムを書いたら、さきほどのメニューの4行目を実行。

やはり! 足し算の結果である15がプリントされました。
もうゴキゲンです。

続けて掛け算プログラミングします。今度はショートカットーキー、C-j (Ctrl + j)を使って実行します。

さくっと答えが出ました。
Lispの楽しいところは、前に式を書くところですね。一回だけ書けばいいので、3値以上の計算がすごく楽です。

では、前回みつけた、上下逆にするLispプログラムを引っ張ってきます。まだ不慣れなので記憶しているパスのsort.el.gzからソースを表示。
(後で、C-h aで、reverse-regionのヘルプを表示してからsort.elをクリックする方がソース表示が早いことに気づきました)

C-s reverse-region (Ctrl + s、reverse-region、Ctrl + sの繰り返しで再検索)で、reverse-regionの定義場所を検索します。

見つかったら、関数を丸ごと選択して、

M-w (Alt + w)で、コピー、元のバッファへフォーカスを移動してから、C-y (Ctrl + y)でペースとします。
ちなみにEmacsではC-y はヤンクと呼びますが、Vimではヤンクは記憶のことで、Windowsではコピーが記憶のことで、ってごちゃごちゃになるので、呼び方はWindows風にそろえています。

ソースを貼り付けたら、reverse-regionという関数はすでにあるので、関数名を変えておきます。tacという関数にしました。

そして、関数の最後にカーソルを移動させて、C-j (Ctrl + j)。

tacと表示されたので、関数定義できたと思います。

では、上下反転実験するための、適当なテキストを作ります。

一部分を選択して、M-x (Alt + x、tac)を実行。

上限反転しました。

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA