Windows環境でEmacsからGaucheを書きたかった

 なんだか読みにくいタイトル。

 ubuntuとか使わずにWindowsそのままでGaucheを書きたかった。どうしても。

 学校の課程でScheme(Gauche)でプログラミングする、という授業がある。結構放任主義な授業で、あまり説明もなくコードを書かされる。もちろん授業中じゃ終わらないために家で書く必要が出てくる。学校の環境はubuntuで、私はあいにくそういう環境でなく例によってWindowsだ。先生からは、「windowsにubuntu入れたらできる」的なことを言われたため、その通りにした。

 私の特性として「大体のことはいい感じに上手くいかない」というものがある。これもそうで、ubuntuをダウンロードしたところまでは良かったのだが、肝心のGaucheが動かない。いろいろ調べたが好転せず諦めた。

 jupyterで書いたりしていたのだがなんか使いにくく、妥協の妥協でこれまで使ってたRacketで書いた。もちろんRacketはGaucheをサポートしておらず、R5RSで書いたものをそれっぽく直して提出していた(R5RSにはランダムが無く、ランダムの課題は苦労した)。

 Gaucheの公式サイトには、対話型で書けるものが配布されている。対話型が好きではないので使わなかった。

 ふと思った。「Windows版のEmacs入れればいいんじゃね?」と。


 前置きが長くなりました。すみません。

 ということで、Windows勢がEmacsでGaucheを使おうとした冒険記です。

 参考にしたサイトは最後に載せます。ありがとうございました。

 私自身情報系に強いわけではないので説明がふわっとしてます。お許しを。


取り敢えずGaucheを入れる

(この工程、意味ないかもしれません)

 Gaucheの公式サイトからwindows向けにダウンロードページが設けられている。↓公式サイト

Gauche

お使いのbitの方に合わせてダウンロードしてください。64bitなら上、32bitなら下です。

先述の通り、Gaucheの対話型のやつなら最初からあります。

これでいいなら終了です。


Emacsを入れる

 続いてはEmacsです。

 なんでEmacs?と問われるとあれですが、個人的にGaucheを扱えるのがEmacsくらいしか知らないだけです。まあ学校のエディタもEmacsですし。

 Emacsのダウンロードはここからできます。

http://ftp.gnu.org/gnu/emacs/windows/emacs-26/

下の方が新しいバージョンです。Gaucheの方で入れたのと同じもののzipファイルをダウンロードしましょう。

  • 32bit → emacs-26.X-i686.zip
  • 64bit → emacs-26.X-x86 64.zip

解凍先としてC:\Program Files (x86)に「emacs」というディレクトリを作っておきます。

無事できましたら、そことは別のディレクトリに「.emacs.d」というディレクトリができてると思います。私はAppdataの中に居ました。

この中に「init.el」という名前でGaucheの設定を書きます。折角なんでEmacsで書きますか。調べるといろいろ出てきます。その中で私が成功したものを載せます。

(setq process-coding-system-alist 
 (cons '("gosh" utf-8 . utf-8) process-coding-system-alist)) 
(setq scheme-program-name "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 scheme on other window" 
 (interactive) 
 (switch-to-buffer-other-window 
  (get-buffer-create "*scheme*")) 
 (run-scheme scheme-program-name)) 
(define-key global-map "\C-cS" 'scheme-other-window)

Windows + Emacs + Gauche の環境構築 | 小さいモノは美しい

(引用元サイトです。本当に助かりました)

再起

 ここで書いているコマンドたちは入力欄とか気にせず、Emacsのウィンドウを選択していれば自由に打ち込めます。

 Emacsで書いたなら、Ctrl-x Ctrl-c で保存してEmacsを落としましょう。そして起動。

 最初の画面で、Ctrl-c Shift-sを押してみましょう。すると、なんということでしょう、Gaucheのインタプリタが起動するではありませんか。

 「これじゃさっきの対話型のと同じじゃないか」とお思いでしょう。

 ちなみに画面の構成が二分割になっていると思います。画面の移動はマウスクリックかCtrl-x oでできます。

次に画面を最初の方にし、Ctrl-x Ctrl-fを押して適当な名前のファイルを作成しましょう。拡張子は.scmです。

 すると、Schemeのエディタが出てきます。ここにコードを書きます。

 書いたコードの一番後ろでCtrl-x Ctrl-eを押してみましょう。すると、さっき出した対話型の方で出力がされるはずです。


 ただ、問題としてオートセーブのエラーが出るというのがあります。そんなに大きな問題ではないと思うので無視してますが、エラー文がエディタに直で出るので毎回読み込みなおしています。気になる人は「Emacs オートセーブ 切り方」とかで検索してみてもよさげです(丸投げ)。

 emacsのディレクトリでないディレクトリにファイルを保存するとエラーが出ません(追記:2020/08/12)。

 このままでは自動補完も何もありません。Emacsは拡張性がすごいらしいので、簡単に見つかるでしょう(丸投げ)。

 なんか中身のない調査をする記事みたいなこと書いてますね。

出典

Windows + Emacs + Gauche の環境構築 | 小さいモノは美しい

Gauche

あどべんと。未経験大学生によるScheme入門日誌-第1話