- 1 名前:名無しさん@お腹いっぱい。 [02/11/29 21:02]
- nviのページ: www.bostic.com/vi/
- 200 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/22(土) 22:23:35 ]
- >>199 使えますよ。
デフォルトでは現在のlocaleのencodingでファイルを開きます。 LC_ALL=ja_JP.eucJP ならeucJPです。 変更する場合は :set fileencoding=<hoge> で指定できます。 起動時に指定したい場合は環境変数EXINITを使って $ EXINIT="set fileencoding=<hoge>" vi みたいにすればOK。 まぁホントは --fileencoding=<hoge> とかできればいいんですが… wrapper script必要? :set inputencoding=<hoge> で入力時のencodingも指定できますが こっちはあんまり使う必要はないでしょう。 それと表示するencodingについては、完全にwcurses依存なので 現在のlocaleからは変更することはできません。よってnvi-m17nのような set displayencoding=<hoge> という設定項目は無いです。 ↑の<hoge>に指定可能なencodingは、iconv依存になりますので iconv -l で一覧を見ることができます。 また内部コードはあくまで現在のlocaleの文字コードです。 現在のlocaleがja_JP.eucJPで、fileencoding=UTF-8ならば 内部的にiconvでeucJP -> UTF-8への変換が行われるということになるので 互換性の無い文字がある場合は?や〓に代替され、情報落ちが発生します。 なのでUTF-8のファイルならja_JP.UTF-8 localeでviを起動したほうがいいでしょう。
- 201 名前:200 mailto:sage [2008/11/22(土) 22:24:10 ]
- なお現状、制限事項により一部のlocale(zh_CN.GB18030とか)では動かないです。
# patch書いたのだけどまだupstreamに流してないのでスマソ。 まぁja_JP.eucJPとかja_JP.UTF-8なら問題ないです。 あ、あとviでバイナリを開いたりする癖のある人は必ず $ LC_ALL=C vi とlocaleをCにしてください、でないとバイナリをmultibyteと解釈して 無理に変換かけようとして動作が不安定になり、落ちるか無限ループ入ります。 # これもそのうちなんとかする予定ですが、ちょっと手が回ってない。 なんか不具合あったらsend-prおながいします。 wcursesも動作が若干ぁゃしぃので…
- 202 名前:200 mailto:sage [2008/11/22(土) 22:57:14 ]
- >>200
× 内部的にiconvでeucJP -> UTF-8への変換 ○ 内部的にiconvでUTF-8 -> eucJPへの変換 失礼。
- 203 名前:名無しさん@お腹いっぱい。 mailto:age [2008/11/23(日) 08:26:20 ]
- 貴重な情報ありがとうございます。
ちょっと使ってみましたが、 en_US.UTF-8、ja_JP.UTF-8のときにcombining character があると表示が崩れてしまうようです。
- 204 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/24(月) 04:23:57 ]
- 表示・編集はいいとして、日本語の入力は皆さんどうしてるんでしょうか?
モード切替えの度にXIMだのMacIMだのをON/OFFするのがひじょーに かったるいので、いまだに-lcannaなnvi (そしてcannaserver!) が手放せずにいるんだけども。 俺だけが知らない、画期的な解決法があるんだろうか。
- 205 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/24(月) 10:03:06 ]
- >>201
ja_JP.UTF-8は動きませんね。 en_US.UTF-8は動くけど、wとかの動作がへん。
- 206 名前:200 mailto:sage [2008/11/24(月) 15:38:41 ]
- >>203
結合文字については表示はterminalが対応してれば可能なはずですが (実際Vista上のPuTTYやTeratermでは表示できてるっぽい) カーソルの移動について、wcursesはwcwidth(3)以上の情報を知らないのが 致命的で、まず使い物にならないと思います # Unicode許すまじ… >>204 すいません、kinput厨なのでその辺はよく知りません。 # IIIMF…(遠い目 >>205 変ですね。 LC_CTYPEに関してNetBSDではja_JP.UTF-8はen_US.UTF-8のaliasなので (see locale.alias)一方が動作してもう一方がダメというのは ちょっと考えられないんですが… $ LANG=ja_JP.eucJP locale を実行した場合、LC_CTYPEには何が表示されますか? それとunmae -aの結果とお使いのterminalをお教え願えますでしょうか。 # もしかしてterminal自体のlocaleと:set inputencodingが一致してない?
- 207 名前:200 mailto:sage [2008/11/24(月) 15:40:22 ]
- × $ LANG=ja_JP.eucJP locale
○ $ LANG=ja_JP.UTF-8 locale たびたびtypoスイマセン…
|

|