Windows上でGaucheで日本語を使うための設定
今日は、
近況。脱エクセルを目指して - nibosiiwasi’s blog
について、詳しく書きます。
WindowsでのGaucheの環境設定でハマりました。
Gaucheのインストールは簡単でした。Gaucheのバージョンは0.9.5
日本語はコンソールからだと、文字化けします。
調べたら、xyzzyでGaucheを使えるらしいので、やってみました。
xyzzyの設定で時間がかかりましたが、最終的にはうまくできました。
xyzzyの設定には、次のリンクなどを参考にしました。
https://practical-scheme.net/wiliki/wiliki.cgi?Gauche%3AWindows%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%E9%96%A2%E9%80%A3
github.com
xyzzyでGaucheを使うための設定
- Gaucheをインストールします。
- xyzzyをダウンロードし、展開します。展開でできたフォルダを自分に都合の良い場所に置きます。
- Windowsの環境変数でXYZZYHOMEを設定します。 C:\フォルダを置いた場所\xyzzy-0.2.2.253\xyzzy という感じでxyzzyフォルダのある場所を書きます。
- このxyzzyフォルダの中に、「.xyzzy」というファイル名のファイルを作り、(setq *default-fileio-encoding* *encoding-utf8n*) と書いて保存します。
- xyzzyでGaucheを使えるようにするための設定をします。
github.com
からダウンロードします。
「.xyzzy」の中に、先ほどダウンロードしたREADMEのコードの部分をコピぺして保存。xyzzyのsite-lispフォルダの中にダウンロードした(site-lispの中の)scheme.lを入れます。xyzzyのetcフォルダの中にダウンロードした(etcの中の)Schemeを入れます。
xyzzyを立ち上げて、M-x(Altを押しながらxを押す)のあと、byte-compile-fileと入力
ファイル名を聞かれるので、~xyzzy/site-lisp/scheme.lと入力(tabで入力補完あり)
xyzzyをCtrl、Shiftを押しながらEnterを押して起動。これでxyzzy設定完了です。
それでは実験してみましょう。
日本語の入ったcsvファイルをリスト形式に変換する実験です。
CSVファイルを読む - Gaucheクックブック
Gauche Users’ Reference: CSV tables
を参考にしました。
books.csv
書籍名,著者,出版社,発行年月,ISBN 空気を読んではいけない,青木真也,幻冬舎,201609,978-4-344-02998-9 悪口の技術,ビートたけし,新潮文庫,200502,978-4-10-122529-6 バカざんまい,中川淳一郎,新潮新書,201609,978-4-10-610683-5 勝負論 ウメハラの流儀,梅原大吾,小学館新書,201310,978-4-09-825181-0 資本主義の終焉と歴史の危機,水野和夫,集英社新書,201403,978-4-08-720732-3
エンコードはutf8nにします。xyzzyで「ファイル」、「名前をつけて保存」、「エンコーディング」 でエンコードを変えられます。
exceltest.scmファイルに
(use text.csv) (use gauche.generator) (define books-alldata (call-with-input-file "../../user-scheme/books.csv" (lambda (in) (port->list (make-csv-reader #\,) in)))) (define booktitle-author (call-with-input-file "../../user-scheme/books.csv" (^p (csv-rows->tuples (generator->list (cute (make-csv-reader #\,) p)) '("著者" "書籍名")))))
と書きます。scmファイルもutf8nのエンコードにします。
今回、フォルダの位置関係は、こういう風にしてます。(注:カレントフォルダはXYZZYHOMEつまりxyzzy-0.2.2.253/xyzzyです。book.csvとexceltest.scmはuser-schemeの中にあります。)
それでは、テストしてみます。xyzzyを立ち上げます。Altを押しながらxを押し、make-scheme-scratchと入力します。
コードを打ち込み、行末でCtrlを押しながらjを押すと、Gaucheが走ります。
実行風景
実行結果
(load "../../user-scheme/exceltest.scm") #t books-alldata gosh> (("書籍名" "著者" "出版社" "発行年月" "ISBN") ("空気を読んではいけない" "青木真也" "幻冬舎" "201609" "978-4-344-02998-9") ("悪口の技術" "ビートたけし" "新潮文庫" "200502" "978-4-10-122529-6") ("バカざんまい" "中川淳一郎" "新潮新書" "201609" "978-4-10-610683-5") ("勝負論 ウメハラの流儀" "梅原大吾" "小学館新書" "201310" "978-4-09-825181-0") ("資本主義の終焉と歴史の危機" "水野和夫" "集英社新書" "201403" "978-4-08-720732-3")) booktitle-author gosh> (("青木真也" "空気を読んではいけない") ("ビートたけし" "悪口の技術") ("中川淳一郎" "バカざんまい") ("梅原大吾" "勝負論 ウメハラの流儀") ("水野和夫" "資本主義の終焉と歴史の危機"))