トップページunix
1001コメント302KB

Navi2ch for Emacs (Part 17)

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2006/08/29(火) 01:10:37
Emacsen で動く 2ch 専用ブラウザ、Navi2ch のスレッド Part 17 です。

Navi2ch Project Home Page
http://navi2ch.sourceforge.net/

*info* (navi2ch)Top
(info "navi2ch")

開発版
% cvs -z3 -d:pserver:anonymous@navi2ch.cvs.sourceforge.net:/cvsroot/navi2ch co navi2ch

過去ログ
>> ~/.navi2ch/etc.txt
> navi2ch
> http://navi2ch.sourceforge.net/log/
> navi2ch

前スレ
Navi2ch for Emacs (Part 16)
http://pc8.2ch.net/test/read.cgi/unix/1140084512/
0002名無しさん@お腹いっぱい。2006/08/29(火) 01:30:49
navich ktkr!
0003名無しさん@お腹いっぱい。2006/08/29(火) 01:46:37
テンプレは?
0004名無しさん@お腹いっぱい。2006/08/29(火) 23:39:24
それは、わたしの心の中にあります。
0005名無しさん@お腹いっぱい。2006/08/29(火) 23:44:35
かんどうした
0006名無しさん@お腹いっぱい。2006/08/30(水) 09:40:40
> *info* (navi2ch)Top
> (info "navi2ch")
の補足説明。

1. emacsen 上で M-x eval-expression する。
2. Eval: の後に「(info "navi2ch")」とタイプする。
3. (navi2ch)Top に飛んだ後は適当にブラウジングする。
0007名無しさん@お腹いっぱい。2006/08/30(水) 12:04:27
リリースやsnapshotで、パッチなしで書き込めるようになったんでしょうか?
0008名無しさん@お腹いっぱい。2006/08/30(水) 16:10:01
hana対応済は今のところCVS版だけ
0009名無しさん@お腹いっぱい。2006/09/02(土) 12:29:52
Q. パッチを作ったんだけど、ここに up すれば良いの?
A. 2ch で晒すと取り込めなくなるので、sourceforge に投げてね。
ttp://sourceforge.net/tracker/?atid=435774&group_id=39552&func=browse

Q. 自作の関数や設定を晒したいんだけど、どうすれば良い?
A. 設定はともかく、関数を 2ch で晒すのは NG。
navi2ch に取り込んで欲しいなら、上記にパッチを投げてね。
ただ晒したいだけなら、メーリングリストやグループに投げてね。
ttp://groups.google.co.jp/group/navi2ch

Q. 正式版、スナップショット、CVS の先端のどれが良い?
A. 正式版以外。正式版の更新は遅いから 2ch の変化に対応しきれてないよ。
0010名無しさん@お腹いっぱい。2006/09/02(土) 17:48:12
LANG=ja_JP.UTF-8 での emacs で navi2ch で書き込むと
記号部分が化けるようです(T_T)
例えば
orz..._| ̄|懿「ォ
おんぷ...懿」
0011名無しさん@お腹いっぱい。2006/09/02(土) 21:11:59
記号部分ってなんですか?
0012名無しさん@お腹いっぱい。2006/09/02(土) 22:01:07
経験則ですがひらがなカタカナ漢字は化けないんです
上のorzは「まる」の文字
おんぷは八分音符の文字が化けています
あと矢印なども化けるようです(T_T)
(emacs は 22.0.50, navi2ch は CVS のさきっちょです)
0013名無しさん@お腹いっぱい。2006/09/02(土) 23:19:03
>>12
UTF-8 で使わなければいいじゃん
0014名無しさん@お腹いっぱい。2006/09/02(土) 23:32:33
>>13
それは UTF-8 で navi2ch を使うなら文字化けはどうやっても回避できないということでしょうか?
それとも単に eucJP で使えるなら UTF-8 にしなければいいだけという意味でしょうか?

後者の意味でしたら、navi2ch 側(emacs側?)でできるのなら UTF-8 でやりたいです。
X11<->Mac OS X アプリ間でコピペできたり、UTF-8 なファイル名をそのまま使えるので
LANG を UTF-8 な環境に移行しているところなのです。
0015名無しさん@お腹いっぱい。2006/09/03(日) 00:16:57
OS XでeucJPで使ってるけど、コピペでは不自由感じたことない。
Safariからコピー、TextEditへペースト程度だけど。
0016名無しさん@お腹いっぱい。2006/09/03(日) 01:03:00
ja_JP.UTF-8 なんて使ったことねぇ。
0017名無しさん@お腹いっぱい。2006/09/03(日) 03:12:29
mule-ucs 使えばいいじゃん
0018名無しさん@お腹いっぱい。2006/09/03(日) 03:24:45
>>15
Safari <-> TextEdit だと Cocoa アプリ同士の普通のコピペなので
X11 関係なくコピペできますから、元々不自由することはなく今回の話とはあまり関係ないですよね。
ちなみに Carbon emacs <-> Safari などの普通のアプリなども大丈夫です。

しかし、X11 内の kterm (with LANG=ja_JP.eucJP) <-> 普通の OS X アプリ
だと日本語コピペができないんですが、UTF-8 にしていれば xterm (uxterm) で出来るのです。

>>16
最近の Linux のディストリビューションだと
ディフォルトで ja_JP.UTF-8 になっているものも多くなってきましたよね。
(それでも eucJP に直して使っていたのですが今回 Mac OS X の X11 の為に移行しようとしています)


というかなんで化けるのかがわからないんですよね。
X11 の中で uxterm with UTF-8 で emacs -nw で navi2ch を起動すると
uuE となっているので、表示は utf-8、navi2ch のバッファは euc になっているのだと思います。
なので「内部的には euc で、navi2ch が 2ch に POST するときに sjis に」しているのは同じはずなのに
外側の Locale が違うだけで記号が化けてしまうのが謎なのです。

>>17
UTF-8 が表示できないということではないんです。
UTF-8 で表示もできるし UTF-8 のファイルも化けずに開けます。
というか 22.0.50 なのでもはや mule-ucs は必要ないですよね。
0019名無しさん@お腹いっぱい。2006/09/03(日) 03:35:36
化けない→♪
> charset: japanese-jisx0208 (JISX0208.1983/1990 Japanese Kanji: ISO-IR-87.)
> code point: #x22 #x76

化ける→懿」
> charset: mule-unicode-2500-33ff
> (Unicode characters of the range U+2500..U+33FF.)
> code point: #x23 #x6A

つー話だな。対策としては日本語入力に IME ではなく、tamago などの
Emacs 自身による実装を使う。
0020名無しさん@お腹いっぱい。2006/09/03(日) 09:47:27
>>18
内部的には euc ではなく emacs-mule。
locale によって japanese-jisx0208 の文字だったり mule-unicode の
文字だったりするのでしょう。

対策はすでに >17 や >19 が書いているけど、
utf-translate-cjk-unicode-range を適切に設定することでもいけるかもしれない。
0021名無しさん@お腹いっぱい。2006/09/03(日) 11:12:38
mule-ucs は処理が重すぎだろ。

emacs と言えば世界的に使われているエディタなのに
未だに UTF-8 使うのに mule-ucs なんぞ使うってのは
おかしくねえか?
0022名無しさん@お腹いっぱい。2006/09/03(日) 12:39:19
22 系は不要なんじゃなかったっけ?
使ってないから知らないが、22 系の完成度はどんなんだろ。
0023名無しさん@お腹いっぱい。2006/09/03(日) 12:57:27
>>22
基本的に不要だけど、一部必要な場合がある。
0024名無しさん@お腹いっぱい。2006/09/03(日) 15:48:59
>>19
まさにそうなっているようです! ヒントありがとうございました!
せっかく調べたので<チラシ 表裏="裏">C-u C-x = でカーソル位置の文字情報表示</チラシ>

>>20
> 内部的には euc ではなく emacs-mule。
それは全く知りませんでした。左下に uuE となっていたらバッファの内部表現は euc なのだと思っていました。:-)
それで確かに >>19 のように japanese-jisx0208 や mule-unicode となっていて
mule-unicode とななっている部分が化けているようです。

で、utf-translate-cjk-unicode-range これがまさに解決の糸口のようで、
ぐぐって
tp://nijino.homelinux.net/emacs/utf-cjk.html#utf-translate-cjk-unicode-range
をまねして設定してみたら、♪や_|懽」|○が化けなくなりました!!
ところが、(つづく)
0025名無しさん@お腹いっぱい。2006/09/03(日) 15:57:01
(つづき)
# あ、♪ と○は出ているのにまだ化けている(全角上バー)・・・_|~|○

それで上記のページで設定されている範囲の (#xff00 . #xffef) が半角カタカナのはずなのに、
半角カタカナがなぜまだ化けます。(mule-unicode になっています)
あと全角上バーも FFE3 なのでこの範囲なのに japanese-jisx0208 になってくれません。

utf-translate-cjk-unicode-range の使い方がよくわかってないのかもしれません。
(♪や○は解決されましたので不思議なのですが)

(#xff00 . #xffef) の範囲は別のやり方が必要なのか
もしこの辺りの知識をお持ちの方いらっしゃいましたらご教授ください。
0026名無しさん@お腹いっぱい。2006/09/03(日) 16:04:50
ごめんなさい「 ̄」上バーは範囲を
(#xff00 . #xff9f)
に変えて実験していたのを戻し忘れていたからでした。
(#xff00 . #xffef)
にすれば出ます。_| ̄|○< やったー
でも同じ範囲になっている半角カタカナはまだ駄目です。

試しにプギャーを書いてみます→ m9 (^Д^) 懽ャ懽ソ懽懽セ懽ー

だめだ_| ̄|○
> character: 懽ャ (326188, #o1175054, #x4fa2c, U+FF8C)
> charset: mule-unicode-e000-ffff (Unicode characters of the range U+E000..U+FFFF.)
> code point: #x74 #x2C
0027名無しさん@お腹いっぱい。2006/09/03(日) 16:15:08
navi2ch-message-before-send-hook で置換すれば?
0028名無しさん@お腹いっぱい。2006/09/03(日) 18:45:44
>>27
なるほどそういう方法がありますね。置換する方法を探してみます。
ありがとうございます。

しかしこの方法は ad-hoc なのでスマートではない気がしますね。
(#xff00 . #xffef) と範囲指定したはずなのに katakana-jis0201 にならない問題を
なんとかするのが正攻法なんでしょうけど、
これもどうやっても mule-unicode になってしまします。_| ̄|○
0029名無しさん@お腹いっぱい。2006/09/03(日) 19:11:31
なんでドキュメント見ないかなあ。
以下のとおり、utf-translate-cjk-mode では katakana-jisx0201 は対象外。

utf-translate-cjk-mode is an interactive compiled Lisp function in `utf-8.el'.
(utf-translate-cjk-mode &optional arg)

Toggle whether UTF based coding systems de/encode CJK characters.
If arg is an integer, enable if arg is positive and disable if
zero or negative. This is a minor mode.
Enabling this allows the coding systems mule-utf-8,
mule-utf-16le and mule-utf-16be to encode characters in the charsets
`korean-ksc5601', `chinese-gb2312', `chinese-big5-1',
`chinese-big5-2', `japanese-jisx0208' and `japanese-jisx0212', and to
decode the corresponding unicodes into such characters.
0030名無しさん@お腹いっぱい。2006/09/03(日) 20:58:17
>>28
通常の decode 時は katakana-jisx0201 になるけど、
なぜか keyboard からの入力時だけは mule-unicode になりますね。

調べてみたら encoded-kbd-self-insert-ccl ではちゃんと katakana-jisx0201
が取得されているけど、それを execute-kbd-macro すると mule-unicode が
挿入されてしまうようです。
mule-ja で聞いてみてはどうでしょうか。

>>29
現在は katakana-jisx0201 も対応されています。
;; DOC string だけが更新されていないのでしょう…。
0031名無しさん@お腹いっぱい。2006/09/03(日) 21:26:00
>>29
すみません、emacs のドキュメントの参照の仕方が下手でずっとググってました。
ソースを見ればドキュメントが書いてあるんですね。
(/usr/share/emacs/22.0.50/lisp/international/utf-8.el.gz にありました(^^;))

でも utf-translate-cjk-unicode-range だけからだと utf-translate-cjk-mode に
たどり着けなかったかもしれません←ぉぃぉぃ

あ、それで utf-8.el を見ていると
utf-translate-cjk-charsets (`utf-translate-cjk-mode' によってサポートされている文字集合のリスト)
に katakana-jisx0201 が入っていました。
上の utf-translate-cjk-mode の記述と矛盾しているような気がしたのですが
まだあまり関係がわかってないのでもうちょっとソースを読んでみます。(とりあえず気づきの報告)
0032名無しさん@お腹いっぱい。2006/09/03(日) 22:05:23
>>30
> 通常の decode 時は katakana-jisx0201 になるけど、

これは、例えば半角カタカナが入っている utf-8 なファイルを開いたときには
katakana-jisx0201 になるということでしょうか? 確かになります。

> なぜか keyboard からの入力時だけは mule-unicode になりますね。

そうなんですよねー。
ちなみに navi2ch の C-c C-a k のきたーは katakana-jisx0201 です。

> 調べてみたら encoded-kbd-self-insert-ccl ではちゃんと katakana-jisx0201
> が取得されているけど、それを execute-kbd-macro すると mule-unicode が
> 挿入されてしまうようです。

この辺が全くわかってなくて申し訳ないのですが、察するに
キーボードから入力した文字がemacs のバッファに格納される途中のことなのでしょうか。
調べてみます。

> mule-ja で聞いてみてはどうでしょうか。

ありがとうございます。こ、これは、し、敷居が高そうですね・・・

> 現在は katakana-jisx0201 も対応されています。
> ;; DOC string だけが更新されていないのでしょう…。

なるほど、CVS 先っぽにによくあることというわけですね。ありがとうございました。

0033302006/09/04(月) 12:49:19
translation-table-for-input に katakana-jis0201 から mule-unicode への
変換が定義されているためのようです。
ためしに translation-table-for-input を nil にしたところ、katakana-jis0201
が挿入されました。
0034名無しさん@お腹いっぱい。2006/09/05(火) 04:12:48
神キター!と思ったんですが .emacs で (setq translation-table-for-input nil)
としても mule-unicode が挿入されてしまいました_| ̄|○ CVS 22.0.50 です。
0035名無しさん@お腹いっぱい。2006/09/05(火) 08:12:37
>>34
(setq-default translation-table-for-input nil)
0036名無しさん@お腹いっぱい。2006/09/05(火) 08:42:27
ところで、

そろそろ複数マシンの未読情報を同期する機能が付いてもいいんでない?
まだー?
0037名無しさん@お腹いっぱい。2006/09/05(火) 10:17:31
だれか作業してんの?
0038名無しさん@お腹いっぱい。2006/09/05(火) 10:29:50
何も作業しなくても .navi2ch を NFS / CIFS で共有するだけ
0039名無しさん@お腹いっぱい。2006/09/05(火) 12:17:20
>>35
ありがとうございます。でも、それでやってもだめでした。
半角カタカナのア→懽
0040名無しさん@お腹いっぱい。2006/09/05(火) 12:43:12
navi2chの話ってよりEmacsの話じゃね?
0041362006/09/05(火) 18:12:47
>>38
それじゃ 2ch のデータを全部同期しなきゃいけなくなる。
未読情報だけ同期取りたい。
未読情報と 2ch のデータの取得情報を分けて管理して欲しい。
よろしくー
0042名無しさん@お腹いっぱい。2006/09/05(火) 18:31:03
rsync
0043名無しさん@お腹いっぱい。2006/09/05(火) 21:31:17
>>40
確かにそうですよね。
Emacs proper な話題だということがわかったので
こういう場合は Emacs スレにお話を持っていった方がいいのでしょうか。

0044名無しさん@お腹いっぱい。2006/09/06(水) 06:56:00
連鎖アボーンの実装は未だですか?
0045名無しさん@お腹いっぱい。2006/09/06(水) 08:19:43
>>43
はい。
0046名無しさん@お腹いっぱい。2006/09/06(水) 20:07:19
もはやだれもいじってない?
■ このスレッドは過去ログ倉庫に格納されています