(define -ayalog '())

括弧に魅せられて道を外した名前のないプログラマ

僕と契約してLisperになってよ!-Gaucheの開発環境を整えよう-

というわけで、最近周りの人にLisp(といってもSchemeだしGaucheだけど)を布教する機会が多くなってきたのと、ちょっとセットアップの仕方教えてよ!って要望があったので、Gaucheで遊ぶまでの道のりを優しく丁寧に書いてみる。
(元も子もないことを言えば、プログラミングGaucheあたりを読めば、綺麗に解説してあったりするんですけど、まぁココみれば全部分かるよ!くらいで書いてみたいと思う)

対象読者はMacUbuntu使ってる人です。あしからず。*1

目次

  • Gaucheのインストール
  • Emacsのインストール
  • Emacsの設定
  • Gaucheリファレンスを読む準備

Gaucheのインストール

UbuntuとかDebianな方

sudo apt-get install gauche

Macな方

brew install gauche

・ソースからインストールしたい方

上のリンクからソースを落としてconfigure+makeでインストールできる。
開発版(GitHubのHEAD)を使いたい場合は、git cloneで持ってきて同じようにmakeしてインストールできます。*2

git clone git://github.com/shirok/Gauche.git

インストールできたら、ターミナルにgoshと打ち込みます。そうするとGaucheの対話環境が起動するので、実際にちょっとだけ打ち込んで確認してみます。

(print "Hello, world")

これでHello, wolrdと表示されたら成功です。対話環境を抜けたいときは(exit)と打ち込みます。

Emacsのインストール

Emacsがインストールしてある人は無視してもらって結構です。
UbuntuとかDebianな方

sudo apt-get install emacs24

Macな方

brew install --cocoa emacs

/usr/local/Cellar/emacs/2X.X/Emacs.app
をアプリケーションディレクトリに入れれば、普通のMacアプリとして扱うことが出来るようになります。
(別に入れなくても起動は出来ると思うけど)

Macの人は最近だと簡単にインストールすることもできるらしいので、こちらを利用することも可。

Emacsについては詳しく解説しないので、操作方法が分からない人はドットインストールのEmacsの回を見ましょう。

Emacsの設定

~/.emacs.d/init.elを開いて、以下の設定を丸々コピペします。だいたい以下の設定があれば、まぁまぁ書きやすいと思います。後はautocompleteとか入れたりしたらいいんじゃないですかね。

(setq scheme-program-name "/usr/local/bin/gosh -i")に関してはgoshのパスに合わせるので、whichコマンドあたりでgoshのパスを確認して適宜修正しましょう。

;; 対応する括弧を表示する
(show-paren-mode t)

;; *.~ とかのバックアップファイルを作らない
(setq make-backup-files nil)

;; .#* とかのバックアップファイルを作らない 
(setq auto-save-default nil)
 
;; ^H を バックスペースへ
(global-set-key "\C-h" 'delete-backward-char)

;; 括弧の補完
(global-set-key (kbd "(") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "{") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "[") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "\"") 'skeleton-pair-insert-maybe)
(setq skeleton-pair 1)

;; emacsでGauche
(setq process-coding-system-alist
      (cons '("gosh" utf-8 . utf-8) process-coding-system-alist))
(setq scheme-program-name "/usr/local/bin/gosh -i")

(autoload 'scheme-mode "cmuscheme" "Major mode for Scheme." t)
(autoload 'run-scheme "cmuscheme" "Run an inferior Scheme process." t)

(defun scheme-other-window ()
  "Run Gauche on other window"
  (interactive)
  (split-window-horizontally (/ (frame-width) 2))
  (let ((buf-name (buffer-name (current-buffer))))
    (scheme-mode)
    (switch-to-buffer-other-window
     (get-buffer-create "*scheme*"))
    (run-scheme scheme-program-name)
    (switch-to-buffer-other-window
     (get-buffer-create buf-name))))

(define-key global-map
  "\C-cG" 'scheme-other-window)

ここまで設定したらEmacsを起動して、Ctrl+cを押したあとにShift+gでGaucheを書くモードにします。


こんな感じ。で、上のスクリーンショットにあるように

(print "Hello, emacs")

って左側の画面に書いてみる。そして、閉じカッコ*3のところでCtrl+xを押したあとにCtrl+eを押すと左側のgosh>のところにHello, emacsって表示されると思う。
というわけで、開発するだけならこれで完了!素敵!

Gaucheリファレンスを読む準備

最後にGaucheのリファレンスを引く方法を書いておきます。
Gaucheの組み込み関数とか気になったものは、だいたい書いてあるので読みましょう!(人のこと言えない程度にはリファレンス読んでないって言われますorz)

で、書こうと思ったけど、過去に書いていたのでこっち参照っていうことで。。。

そんなこんなで、Emacs+Gaucheという素敵な開発環境ができました?
ぶっちゃけ最近だとSublimeText2使ったほうが簡単っていう人もいるので、何が良いどういう環境がいいって一概に言えませんが、なんだかんだで僕はこの環境が気に入っているのでこんな感じです。

それでは、良いGaucheライフを〜♪

*1:理由だけど、Windows今持ってないから分かんない

*2:HEADを持ってくるときはGaucheがインストールされていないとインストールことができませんので注意

*3:通称コッカ