Gauche:Windowsコンソール関連
Windowsコンソール関連
Windowsコンソール関連のモジュール5個とサンプル1個です。
(Gauche v0.9.6 の Windows コンソール対応については、
Gauche:Windowsコンソール対応 を参照ください)
msjis (Windowsコンソールで日本語)
https://github.com/Hamayama/msjis
- <<<本モジュールの機能は、Gauche v0.9.6 に取り込まれました>>>
- Windows のコマンドプロンプトで Gauche (gosh.exe) を使うときに、
日本語 (CP932) の表示と入力を可能とするモジュールです。
- 日本語版 Windows のコマンドプロンプトでは、デフォルトで CP932 というコードページが選択されています。
これはシフトJISを独自拡張した文字コードとのことです。
- Gauche の内部文字エンコーディングはデフォルトで UTF-8 であるため、
コマンドプロンプトで日本語の入出力を行うと、文字化けが発生します。
- 本モジュールは、コンソールの入出力のところで、
CP932 と Gauche の内部文字エンコーディング の変換を行い、文字化けを解消するものです。
--
文字化けの解消については、他の方法についてもいろいろ調べました。
参考になるかもしれないので、それらのメモを以下に残しておきます。
(情報が古くなっている可能性があります)
(1) コマンドプロンプトのコードページを UTF-8 に変更する chcp 65001 でコードページを UTF-8 に変更できるという情報があり、試してみた。 まず、日本語フォントが対応していないようで表示できなかった。 それで、何やら裏技的な方法 ( http://www.fine-view.com/jp/zatsugi/editor_console.html ) で、 日本語フォントを設定できるとのことで、やってみたが、コピペで文字が重なって表示されたりして、 うまく表示できない場合があった。 また、MS-IME が起動できず、日本語を直接入力することができなかった。 (2) MinGW の mintty を使う 以下のページを参考にインストールした。 http://dogmap.jp/2011/11/15/mintty/ ある程度 UTF-8 で入出力できたが、入力中にバックスペースで文字を削除すると、 入力がおかしくなった(他の文字に化ける等)。入力の訂正ができないため、ちょっと使えなかった。 (3) Gauche の wrap-with-input-conversion, wrap-with-output-conversion を使う 以下のページにのっていたので試してみた。 http://d.hatena.ne.jp/aike/20081203 (sjis (print "あいうえお") (flush)) のように入力してみたが、入力した時点ではポートの変換がかからないため、文字化けした。 (sjis (read-eval-print-loop)) としたらいけそうだったが、入力ポートのバッファリングのため無応答になった。 多分、Gauche のバージョンアップで、入力ポートのバッファリングが改良されて、 上記ページの方法が使えなくなったのだと思う。 (4) Gauche を内部文字エンコーディング sjis でコンパイルする これはうまくいった。でもやっぱり utf-8 で使いたくて元に戻した。 (5) xyzzy を使う ( https://github.com/xyzzy-022/xyzzy ) Emacs ライクなエディタで、scheme-mode が以下にあった。 https://github.com/matsuoka/scheme-mode-for-xyzzy 一部変更してインタプリタと UTF-8 でやりとりできるようにした。 https://github.com/Hamayama/scheme-mode-for-xyzzy うまく入出力できた。ただやはり設定や操作が難しかった。
hamayama(2014/09/13 01:50:21 UTC)
mscon (Windowsコンソールの制御)
https://github.com/Hamayama/mscon
- Windows のコマンドプロンプトで Gauche (gosh.exe) を使うときに、
コンソールの制御を可能とするモジュールです。
- Gauche に付属の os.windows モジュールのコンソールAPIを使用しています。
cls, locate, color等、BASIC言語のコマンドに似せてみました。
- 本モジュールは Windows でしか動きません。
汎用性を考えると、curses というライブラリがあるようです。
また、Gauche の開発最新版には、text.console モジュールがあります。
hamayama(2014/09/13 01:50:21 UTC)(2016/04/24 16:29:01 UTC)
mspath (Windowsのパス名の読み込み)
https://github.com/Hamayama/mspath
- Gauche の REPL 上で、Windows のパス名をそのまま読み込むためのモジュールです。
- Windows のコマンドプロンプトで Gauche の REPL を実行している場合、
.scm ファイル等を、マウスでドラッグ&ドロップすると、パス名が表示されます。
しかし、パス名の区切りの円記号 (もしくはバックスラッシュ) は、
文字列のエスケープ記号と認識されるため、うまく読み込むことができません。
本モジュールは、このパス名をそのまま読み込むための、補助ツールとして作成したものです。
- その後、MSYS2 の mintty 上でも使用できるように msys- 系の命令を追加しました。
hamayama(2016/04/24 16:17:38 UTC)
msicon (アイコンの設定)
https://github.com/Hamayama/msicon
- Gauche の Windows 版で、ウィンドウの左上に表示されるアイコンを設定するためのモジュールです。
- 現状、いろいろと制約事項があります。。。
hamayama(2016/04/24 16:17:38 UTC)
msconalloc (コンソールなし版のGaucheでコンソールの割り当てと非表示)
https://github.com/Hamayama/msconalloc
- Windows のコンソールなし版の Gauche (gosh-noconsole.exe) で、
コンソールの割り当てと非表示を行うためのモジュールです。
- 例えば、コンソールなし版の Gauche で、print 等で標準出力に表示を行うと、
Gauche は自動的にコンソールを割り当てて (AllocConsole)、コマンドプロンプトの画面を表示します。
本モジュールを使うと、このコマンドプロンプトの画面を表示しないようにすることができます。
- 標準入出力を扱うライブラリの使用が必要で、ただしコマンドプロンプトの画面は出したくないような
場合に使えるかと思います。
- ただし、Windows の内部情報を使用しているため、Windows のバージョンによっては、
動作しない可能性があります。
hamayama(2014/11/26 08:33:36 UTC)
line-editor-gw (ラインエディタサンプルの移植)
https://github.com/Hamayama/line-editor-gw
- Gauche の line-editor サンプルを、Windows 用に改造したものです。
実行には Gauche v0.9.5_pre1 が必要です。
また、改造版のモジュールをいくつか使用しています。
- 入力のエコーではなく REPL として機能するようにしました。
- 現状、注意事項のところに書いた不具合が存在します。
(日本語版 Windows の不具合のようですが。。。回避できず。。。)
hamayama(2015/11/24 09:22:20 UTC)
shiro (2015/11/25 23:37:21):
hamayama (2015/11/26 13:37:06):