Lispy Days

趣味で Lisp な日々 (index) (weblog) (view) (edit) (help)

Scheme

Quack (Scheme 支援 for Emacs)

Quack は Emacs 用の高機能な Scheme モードです。 Scheme 書く時は大抵コレ使ってます。 (PLT Scheme だけは附属のエディタ使いますが)

Quack for Emacs

rlwrap による readline 支援 for Gauche

シンプルが信条の Scheme にあって,正規表現を標準装備,ライブラリも結構充実と,何故か Common Lisp より快適な処理系 gauche だが,まだ行編集やコマンドヒストリ機能が無い.Emacs から使う時はあまり困らないのだが,やはり単独で動かすときは行編集機能くらいは欲しい…というわけで,上述の cmucl の場合と同様に readline wrapper プログラム rlwrap を使ってみる.やっぱインタラクティブに使う時はこれくらいは欲しい.以下,gauche 用の補完リストの作り方.

$ gosh -E"use gauche.interactive" -E"apropos #/.*/" -Eexit |tr "(" "\n" |tr -d " (" |sort |uniq  >gosh_symbols1
$ cat >script.awk
BEGIN {show=0}
/^C.[1-4]/ {show=1}
/^Table of Contents/ {show=0}
{ if (show==1) print $0}
$ awk -f script.awk refj |grep  -e "^  [^ (]" |grep -v "^  Index Entry" |awk '{print $1}' 
 |tr -d " " |sort |uniq >gosh_symbols2
$ cat gosh_symbols1 gosh_symbols2 |sort |uniq >~/.gosh_completions

gosh_symbols1 をそのまま .gosh_completions にするだけで十分な気がしてきた.とりあえず行編集とヒストリ機能が装備されて快適.