haskell-ja > Archives > 2011/10/28

2011/10/28 08:32:27 UTC[1..100]>>=pen
#
yi が扱えるコードは utf8 だけですか?sjisで書かれたファイルはダメですかね。
#
yi のvimモードをカスタマイズするとしたらどのファイルをいじればいいですか。
2011/10/28 08:38:51 UTCikegami__
#
開発版の Yi の yi.cabal の build-depends: みた限り iconv つこてないし、SJIS サポートは、自前でハックするか、あるいは開発者を説得するしかないでしょう
#
で、.vimrc に対応するものは ~/.yi/Yi.hs です
#
http://www.haskell.org/haskellwiki/Yi#Configuration
#
http://code.haskell.org/yi/examples/
#
あたりを参考に、Yi.hs の main = yi $ ... を書く
2011/10/28 08:59:00 UTC[1..100]>>=pen
#
ありがとうございます。mkdir ~/.yi; vi ~/.yi/yi.hs したら何やら読み込もうとしてることは確認できました(書き方わからないのでエラーでしたが)。
#
yi のカスタマイズ例どっかないですか。
2011/10/28 09:02:12 UTCikegami__
#
http://code.haskell.org/yi/examples/ あるいは Hackage から tarball ダウンロード、です。 : カスタマイズ例
2011/10/28 09:03:23 UTC[1..100]>>=pen
#
yi-vim.hs とか読んでもさらにどうカスタマイズすればいいかわらんとです。
2011/10/28 09:04:45 UTCikegami__
#
Hackage にある Haddock 見るしかないんじゃないですかね、あるいはソースコードリーディング
2011/10/28 09:16:03 UTC[1..100]>>=pen
#
yi のソースコード読もうかな。ダウンロードしますた。約2万5千行、あははは、あはは、あは・・・
2011/10/28 09:17:26 UTCikegami__
#
いや、SJIS 対応するならファイル開くときのフックとかセーブ時の文字コード変換とか、ソース読まないと設定できんと思いますが、どうでもいいキーコンフィグとかは Haddock で事足りると思いますよ
2011/10/28 09:30:12 UTC[1..100]>>=pen
#
キーコンフィグよりは踏み込んだことしたくなりそう(まだ具体的にこれというわけではないけど)なんです。
2011/10/28 09:33:25 UTCikegami__
#
main = yi $ ... なわけですが、 yi :: Config -> IO () なわけで : http://hackage.haskell.org/packages/archive/yi/0.6.2.4/doc/html/Yi-Boot.html#v:yi
#
Yi.Config か Yi.Config.Default しか、基本いじれないわけです
#
このふたつのモジュールのドキュメント読んでみて、やりたいことが実現できるかどうか考えるのがいいと思われます(でなければ ~/.yi/yi.hs 以外の手段を取らざるを得ないとおもわれ
2011/10/28 09:36:12 UTCshelarcy@twitter
#
yi のファイル読み込みや書き込みが Handle (や Text I/O)を使っているなら、iconv パッケージ依存にしなくても System.IO.mkTextEncoding 越しに iconv を利用するので十分ではないでしょうか?
#
http://t.co/IkVYNow2 http://t.co/4Aop0IRy > SJIS サポート
#
(ただし、Unix 環境に限りますが。また、その辺のフックを設定できるかどうか分かりませんが。)
2011/10/28 09:41:42 UTC[1..100]>>=pen
#
アドバイスどうもです ikegami__ shelarch。急いでいるわけでもないのでのんびり調べてみます。
2011/10/28 09:48:59 UTCikegami__
#
Text ではなく ByteString ですね、しかし Handle は Process.hs にありました
#
System.IO.mkTextEncoding は知らなかったです。ありがとうございます
2011/10/28 10:09:19 UTCshelarcy@twitter
#
あっ、データ型が Text かどうかという意味ではなく、(Handle を使うように実装された) GHC の Unicode Text I/O の上に実装されているかどうかという意味のつもりでした。
2011/10/28 10:17:49 UTCikegami__
#
僕が読み違えてました、すみません
2011/10/28 10:31:51 UTCshelarcy@twitter
#
Data.ByteString や Data.ByteString.Lazy ならバイナリモード、Data.ByteString.Char8 や Data.ByteString.Lazy.Char8 ならテキストモードでファイルを開くので、
#
重要なのはどっちを使っているかですね。 http://t.co/AwBLYZuf http://t.co/2h0C7BIH
#
(バイナリモードだと GHC の Unicode Text I/O に乗っからないので。)
2011/10/28 10:39:13 UTCikegami__
#
バイナリモードでした… Data/Rope.hs
2011/10/28 10:55:19 UTCshelarcy@twitter
#
ああっ、Unicode Text I/O 使わずに utf8-string 使っちゃってますね。 http://t.co/fCrTTs8p
#
結局、(互換性のためか手付かずなのか) Unicode Text I/O が入る前の古いコードをそのまま使っているため、SJIS 対応させられないというところかしら。
2011/10/28 11:02:22 UTCshelarcy@twitter
#
.。oO(個人的には、utf8-string は遅いのでできるだけ使うべきではないという立場ですが。 http://t.co/gpG13tS3 )
2011/10/28 11:04:14 UTCikegami__
#
Yi の Issue Tracker 見たのですが、Unicode まわりの実装が古くて、mini buffer バグってるのでなんとかしようよ、という open ticket ありましたし、全面改訂が望ましいです : http://code.google.com/p/yi-editor/issues/list
2011/10/28 11:10:24 UTCshelarcy@twitter
#
そうですね。私もそう思います。
2011/10/28 13:13:45 UTC[1..100]>>=pen
#
「Yi は Djinn術なり」って格言思いついたので気に入ったら使ってください。
2011/10/28 13:17:29 UTCikegami__
#
「Yi を見て為さざるは勇なきなり」と古来から言うそうです