CLOVER🍀

That was when it all began.

Gauche X Emacs

自分は簡単なプログラムを書く時には、たいていEmacsを使います。GaucheLisp系のため、Emacsで書いた方が都合がいいっぽいので今回もこちらを使用。

書籍「プログラミングGauche」を見ると、.emacsの設定が載っているのでこちらをそのまま利用。他のサイトとかも調べてみましたが、だいたいみんな同じなので問題なさそう。

.emacs

;; エンコーディングの設定
(setq process-coding-system-alist
  (cons '("gosh" utf-8 . utf-8) process-coding-system-alist))

;; goshインタプリタのパスに合わせる。「-i」は対話モード
(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)

;; 別ウィンドウを起動し、goshインタプリタを実行する設定
(defun scheme-other-window ()
  "Run scheme on other window"
  (interactive)
  (switch-to-buffer-other-window
    (get-buffer-create "*scheme*"))
  (run-scheme scheme-program-name))

;; Ctrl-csでインタプリタを呼び出すよう定義
(define-key global-map
  "\C-cs" 'scheme-other-window)

;; 直前/直後の括弧に対応する括弧を光らせる
(show-paren-mode)

使い方

goshインタプリタの起動

C-c s
※C-はCtrlと同時押しの意

scheme-modeで使えるコマンド

拡張子が「.scm」となっているファイルを開くと、自動的にscheme-modeが起動するはずなので、こちらで使えるコマンドを紹介。

コマンド 動作
C-x C-e カーソルの直前のS式を評価
C-c C-e カーソルのS式を含むトップレベルのS式を評価
C-c C-l ファイルをロード
C-c C-r リージョンを評価
C-c C-z Schemeインタプリタが動いているバッファへフォーカスを移動
移動コマンド
コマンド 動作
M-C-f 次のS式へ移動
M-C-b 前のS式へ移動
M-C-a カーソルのS式を含むトップレベルのS式の先頭へ移動
M-C-e カーソルのS式を含むトップレベルのS式の末尾へ移動
M-C-d 1つ内側のS式へ移動
M-C-u 1つ外側のS式へ移動
M-C-SPC カーソルのS式の次のS式をマーク
M-C-t カーソルのS式の前後のS式を交換

まだ全然使いこなしていませんが、ちょっとずつ覚えていくとします。