LISP言語を勉強しようと思い立ってから、もう数ヶ月経っているが、当初考えていたCommon Lispから心が離れてしまっている。Emacs Lispに興味が移ってしまったんだ。
今さら欲しい物などなかった
Common Lispでプログラミングを目指したものの、自分のUbuntu Boxには十分なソフトが用意されており、むしろ課題となっているものまで存在する(例えばMuse Scoreとかね)。
しかし、LISPには触りたい。
EmacsをIDEとして使おうか
何かとLISPとの関係が深いEmacsをCommon LispのIDEとして使おうと考えたので、勉強を始めた。はるか昔に触ったことがあるが(Muleだった)、仕事で使う機会が少ないと思って、敬遠してしまっていたのだ。でも結構話が分かる。分かるんだ…
導入したバージョンはご覧のように27.1となっている。
$ emacs --version
GNU Emacs 27.1
Copyright (C) 2020 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of GNU Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.
X環境で使いたいので、GUI版をCtl+Alt+Eにバインドしてある。その前はgeditにバインドしてあったのだった。
手に入れたマニュアルPDF(日本語)はemacs-jpの”emacs29-3-ja.pdf”で少々上位だが、動作はほぼ検証できている。さして変わりは感じない。例によって画面の呼称やカーソルの移動とかから始まって、詳細な説明を勉強した。しかし、細かい、細かすぎる。書籍を探してたどり着いたのが、「[改訂新版]Emacs実践入門」という名著。やっと一通り目を通した。今はこれとマニュアルPDFに首っ引きだ。
Emacsの中にLISPの箱庭があった
EmacsはコアなところはC言語などで書かれているが、UIの部分は殆どがEmacs Lisp(ELISPとも)で書かれている迄は知っていたが、その箱庭具合については以前の学習では到達していなかった。
Emacsの環境はLISPで構築されているのだから、その機能を増やすなり、強化することが必要であれば、その環境(箱庭)で動作する関数をLISP書いて導入すれば良いのだ。
確かにアプリをスクラッチするのは面白いだろうが、今更開発ごっこしなくても、この箱庭で遊んでいれば、かなりな事ができる。例えばEmacsのウインドウで動くターミナル機能があるが、このノリで遊べるんだな。最初考えたシステム手帳機能(org-mode)はもうあったし。
昔とは違って、X環境のGUI版ならマルチメディアも扱える。組み込みのブラウザで画像の表示もできるんだ(動画は未確認)。その他のクライアント機能も誰かが手を付けているという感じだ。
箱庭のIDEが欲しいよね
問題ない。ソースを書く際のモードは用意されているし、IDEの味付けもできる。gitもできる。全部組み込み機能か機能強化で片がつくのだ。GitHubと再度お付き合いだな。
LISPの楽しみ方
ということで、もうおわかりと思うが、LISPを愉しむにあったては、Emacsの箱庭にいることにした。LISP本来の論理的なスタイルを愉しむには、メモリ空間にいるのが最高のスタイルだと思う。
所謂LISPの副作用とかを気にしないで論理的に遊んでいける世界だ。
MELPA?そんなの遠い遠い^^
コメント