前回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)を実行。
上限反転しました。
コメント