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

Navi2ch for Emacs (Part 18)

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2007/07/30(月) 23:56:38
Emacsen で動く 2ch 専用ブラウザ、Navi2ch のスレッド Part 18 です。

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 17)
http://pc11.2ch.net/test/read.cgi/unix/1156781437/
0230名無しさん@お腹いっぱい。2008/01/16(水) 20:26:32
俺も去年の5月前から更新してなかったけど、さっきcvs updateした。
"I"がWindowsのMeadow上に比べて異常に遅かったが、そこそこ早くなってるね。
ただ、まだMeadow上にはかなわない。

何が原因で遅いの?
0231名無しさん@お腹いっぱい。2008/01/16(水) 20:51:04
間違ったスレッドに書き込みを行ってしまったため、再度こちらで質問させて頂きます。

navi2chを使い始めたのですが、Emacsの背景を黒にしているので
青等の文字が非常に見づらいです。
黒用に設定した設定とかはないでしょうか?
0232名無しさん@お腹いっぱい。2008/01/16(水) 21:02:04
M-x customize-face
0233名無しさん@お腹いっぱい。2008/01/16(水) 21:06:42
>>230
なんかwaitがかかるようになってないか?
これって解除できないのかな。 2ちゃんねるがわの規制?
0234名無しさん@お腹いっぱい。2008/01/16(水) 21:34:27
waitうざいよな
0235名無しさん@お腹いっぱい。2008/01/16(水) 21:45:22
>>231
自分で設定作ってdark用のfaceとしてパッチ送ったら
0236名無しさん@お腹いっぱい。2008/01/16(水) 22:17:12
>>231
こっちでは普通にできてるよ。
もうちょっと環境さらさないとだれも答えられないと思う。
0237名無しさん@お腹いっぱい。2008/01/16(水) 22:35:04
できてるってなんだ?
0238名無しさん@お腹いっぱい。2008/01/16(水) 23:12:35
青等の文字って、板とかスレのことか?
見辛いと思ったことねぇなぁ。
0239名無しさん@お腹いっぱい。2008/01/16(水) 23:30:42
液晶を暗くすると見づらいな。
0240名無しさん@お腹いっぱい。2008/01/16(水) 23:53:22
スクショでも貼ってみたら?
0241名無しさん@お腹いっぱい。2008/01/17(木) 00:10:51
どうやって液晶の明るさを見るんだよw
0242名無しさん@お腹いっぱい。NGNG?2BP(0)
>>230
Meadow で速いのなら Meadow と Emacs の違いの部分なのかな?
根本的な解決にはなってないかもしれないけれど、
navi2ch-bookmark-fetch-mark-article-check-update が t なら、
I とか mi した時に、 板情報を取ってきてレス数が増えてないものは unmark するようなコードを
入れてみました。
今の状態だと、I は全スレ1つずつネットワークつなげて確認しにいくんで
1つの板で多くのスレを見ている人は、これで結構速くなるかも。

>>231
一応、背景が dark な時の face は設定してます。お好みでカスタムしてください。

>>233-234
バーボン対策みたいです。これも 上の変更で軽減できるかも?
0243名無しさん@お腹いっぱい。2008/01/17(木) 16:10:40
>>242
> navi2ch-bookmark-fetch-mark-article-check-update が t なら、
> I とか mi した時に、 板情報を取ってきてレス数が増えてないものは unmark するようなコードを
> 入れてみました。
my-navi2ch がないと動かないみたいですが、そういうもんですか
0244名無しさん@お腹いっぱい。2008/01/17(木) 16:15:09
BEも見れるようにならんかな
0245名無しさん@お腹いっぱい。NGNG?2BP(0)
>>243
今の CVS だと動くと思います。
;; しばらく my-navi2ch を外して開発しよう…。

>>244
BE にリンクをつけたいってことでしたら
(setq navi2ch-article-date-format-function 'navi2ch-article-date-format-be2ch)
です。
0246名無しさん@お腹いっぱい。2008/01/19(土) 20:13:27
(defun navi2ch-message-samba24-check (board)
が上手く動いてない気が。yes-or-no-pの前に時間比較の条件が無いとダメっ
ぽい気が。あと、current-timeはfunctionでもあるので、変数として使うのはわか
りづらい気が。
0247名無しさん@お腹いっぱい。2008/01/19(土) 20:51:04
あと
(run-at-time 1 1 'navi2ch-message-samba24-timer)
のコールバックファンクションの実体を貼り忘れてる気が。
0248名無しさん@お腹いっぱい。2008/01/19(土) 21:54:08
気がが多い気が。
0249名無しさん@お腹いっぱい。2008/01/20(日) 14:41:57
新着レス数がちゃんと動いてないと思う。
0250名無しさん@お腹いっぱい。2008/01/20(日) 14:45:44
ぼろぼろだな
0251名無しさん@お腹いっぱい。2008/01/20(日) 15:32:35
今はちゃんと動いてるけど、さっき"+"したら、
( 887/ +0/ 0)
見たいな形になった。

スレッドを見ると、新着のレスがあった。
0252名無しさん@お腹いっぱい。NGNG?2BP(0)
>>246-247
navi2ch-message-samba24-check は一応一度試した気が。 直った気が。

>>249-251
>>242,245 のことですか? 見てみます。
今のところ再現できてないので詳しい報告募集中です。


0253名無しさん@お腹いっぱい。2008/01/20(日) 22:50:02
頻繁に再現するから、スクリーンショットか何か取った方がいい?
( 887/ +-3/ △0)
とかになったりもする。
EmacsLispは全く分からないけど、スクリーンショット以外にも
できそうなことがあったら言ってチョ。
02542532008/01/22(火) 02:48:41
自分以外は再現してないのかな…
0255名無しさん@お腹いっぱい。NGNG?2BP(0)
ご心配なく。再現成功しました。
navi2ch-board-insert-subject-with-unread が non-nil の時に
navi2ch-article-get-last-read-number() を呼び出して article-info を読むのですが、
その時に使われる navi2ch-put-alist() が article を書きかえてしまうのが原因でした。
根本的には、 navi2ch-put-alist() の問題なんでしょうけど、とりあえず copy-tree するように
commit しました。
0256名無しさん@お腹いっぱい。2008/01/22(火) 16:54:36
まちBBSのスレッドを読むときに
ID の横の IP でフィルター処理することはできますか?
0257名無しさん@お腹いっぱい。2008/01/22(火) 19:45:26
Rieceとかw3m-emacsとかmewは、動作中に(ダウンロード中、動作中)に
バックエンドに移動できるのに、Navi2chはなんでできないの?
windows.elの仕様? でも、C-x C-bも動かないし、Navi2chの仕様?
Navi2chで、"I"してる間とかに他の作業ができればありがたいんだけど。
0258名無しさん@お腹いっぱい。2008/01/22(火) 19:50:45
なんでそこで windows.el が出てくるのか詳しく
0259名無しさん@お腹いっぱい。2008/01/22(火) 19:51:29
自分の環境がemacs23になったので、 なアイコン表示に対応させてみまし
た。今のところ
(add-hook 'navi2ch-article-mode-hook 'navi2ch-article-show-sssp-icon)
してやると動きます。アニメgifが動かないのは悲しいですが。

その他、微妙な修正はChangeLogを御覧あれ。
02602572008/01/22(火) 20:10:31
すまん。
自分がwindows.el使ってるから書いただけ。

そんだけ
0261名無しさん@お腹いっぱい。2008/01/22(火) 20:11:11
>>257
仕様です。
0262名無しさん@お腹いっぱい。2008/01/22(火) 20:13:43
俺は'I'するときだけ違うEmacsを立ち上げてそこでやってる。
バックグラウンドで動くようになればうれしいが、仕様ならどうしようもないか。

バックグラウンドで動くようにするのは難しいの?
0263名無しさん@お腹いっぱい。2008/01/22(火) 20:53:54
mew や w3m は非同期に読み込むために emacs でない別プロセスを用意してる。
難しくはないだろうけど、別にコマンドをインストールする必要があるのを嫌
う人は結構いるよね。
0264名無しさん@お腹いっぱい。2008/01/22(火) 20:55:19
って、>>189にasync化用のコード置いてあるやん。
0265名無しさん@お腹いっぱい。NGNG?2BP(0)
>>256
多分、今のところできないです。やってみます。

>>259
乙です。sssp がなにものか理解していませんが、気になったところを。
- (lambda (s) s) は #'identity のが速いと思います。
;; ここでは (regexp-opt navi2ch-browse-url-image-extentions) がよりよいかな。
- (concat navi2ch-directory "/sssp_icon/") は expand-file-name を。
- (setq file (match-string 1 url)) は
(setq file (expand-file-name (match-string 1 url) sssp_dir)) のほうがよいのでは?
- let* は let でいいと思います。
- buffer-read-only が nil になりっぱなしでは?
;; 戻し忘れ防止のため let で拘束してやるのがよいです。
- navi2ch-net-update-file() のとこは save-excursion を。
;; navi2ch-net-update-file() でポイントずれるのはあまりよくなさそうなので見てみます。
- "\\([^ \t\n\r]+\\.\\(" の一つめの "\\(" は必要ないのでは?

あとはぼくの趣味ですが、
- 正規表現であとから参照しない \\(\\) は \\(?:\\) にしたほうがいいかも。
- 80 桁を目安に改行したほうがいいかも。

(if (re-search-forward のとこを (while (re-search-forward にしたら全部読みそうですけど、重いかな…?
url に property をつけるあたりで image 入れてやってもいいかもしれませんね。
0266名無しさん@お腹いっぱい。NGNG?2BP(0)
>>256
commit しました。
0267名無しさん@お腹いっぱい。2008/01/22(火) 22:55:18
一人一人の要求に答えて行くのか…。
滅茶苦茶にならねぇか
0268名無しさん@お腹いっぱい。2008/01/22(火) 23:02:13
>>265
ひとつ気になったんだけど、

> - 正規表現であとから参照しない \\(\\) は  \\(?:\\) にしたほうがいいかも。
これって対応をうたってるどのEmacsenでも大丈夫だったっけ?

#というか、infoとか見ても各Emacsenの対応バージョンまでは書いてないな。

あと、うちのMeadowだとcopy-tree()がcl-extraにあるせいで
clをロードする前にnavi2chでスレ読もうとするとエラーになるんだけど、
EmacsやXEmacsも同じ?
0269名無しさん@お腹いっぱい。2008/01/23(水) 00:04:44
>>267
別に全部にこたえるわけじゃないでしょ。
02702562008/01/23(水) 00:10:59
>>265-266
ありがとうございました。
0271名無しさん@お腹いっぱい。NGNG?2BP(0)
>>267,269
今回のについては、ぼくも何度か欲しいと思った機能でしたし、
すぐに実装できそうなものでしたので。
あまりにも無理そうなものは回避します(多分)し、実際 SF.net の patch や
FR は今のところスルーしてますし。

>>268
> >>265
> > - 正規表現であとから参照しない \\(\\) は \\(?:\\) にしたほうがいいかも。
> これって対応をうたってるどのEmacsenでも大丈夫だったっけ?
>
> #というか、infoとか見ても各Emacsenの対応バージョンまでは書いてないな。

emacs-w3m でも普通に使ってるので大丈夫かと。

> あと、うちのMeadowだとcopy-tree()がcl-extraにあるせいで
> clをロードする前にnavi2chでスレ読もうとするとエラーになるんだけど、
> EmacsやXEmacsも同じ?

Emacs では、 subr.el ですね。XEmacs だと built-in です。
どちらにせよ、 (eval-when-compile (require 'cl)) してるんで
コンパイルしてれば大丈夫だと思うのですが。
0272名無しさん@お腹いっぱい。2008/01/23(水) 12:58:42
>> (eval-when-compile (require 'cl))
(It is ok for them to load CL at compile time only, with eval-when-compile, and use the macros it provides.)
そういうわけで関数は(require 'cl)しないと駄目っす。
0273名無しさん@お腹いっぱい。NGNG?2BP(0)
>>272
> >> (eval-when-compile (require 'cl))
> (It is ok for them to load CL at compile time only, with eval-when-compile, and use the macros it provides.)
> そういうわけで関数は(require 'cl)しないと駄目っす。

あぁ…そですね、マクロじゃなかった。 面倒ですな。
copy-alist なら Meadow でも built-in ですかね?
0274名無しさん@お腹いっぱい。2008/01/23(水) 19:41:26
>>273
NEWS.1-17 に出てくるくらいだから問題ないんじゃないかと。
copy-tree は 22 からのようですね。
0275名無しさん@お腹いっぱい。2008/01/24(木) 05:12:39
恥ずかしながら、長いスレを読むときの'r'(navi2ch-article-redraw-range())
の使い方がいまいちよく分かりません。これで出てくる選択肢って「1-50まで
表示する」とか言う意味なんでしょうか?"first50 last 50"とかは何を意図
した動きなんでしょう?

一般的に100レスくらいずつ読みたいときは、どうしてるもんなんでしょう?い
わゆる「次の100」的な機能ってあるんでしょうか?
0276名無しさん@お腹いっぱい。2008/01/24(木) 05:46:14
いきなり r0 って打って全レス取得してるなあ
0277名無しさん@お腹いっぱい。2008/01/24(木) 06:35:31
>>275
そういう機能はありません。フツーr0です。

遅いCPUでフィルタをいっぱい指定しているとクソ遅いですが、遅いのはそこだけなので
100個読む毎にクソ遅い思いをするより読み始める前に一服した方がいいと思います。
0278名無しさん@お腹いっぱい。2008/01/24(木) 10:24:07
そうそう、遅いので range を選択した時点で *select view range* を閉じて
くれると嬉しいと思うんすが。
長いこと cvs update してないからもうそうなってたらごめんけど。
0279名無しさん@お腹いっぱい。2008/01/24(木) 17:30:13
>>275
first は >>1 からいくつ表示するかという数字。
50 なら >>1-50
>>1 にリンクとか揃ってるスレなら first は 1 だけでいいかも。
last は 最後の書き込み からいくつ前までを表示するかという数字。
50 なら >>230-279 とか。

中間部分の表示、フィルター処理を省略するためのもの。

>「次の100」
g 数字 C-@ g 数字 C-x n n
とかで範囲表示すればできる。(narrow-to-region は M-x widen でもどる。)

>開発者さん
既存のものを組み合わせれば
現在のスレッドから 100個表示 とか 50個表示 ってのできると思うけど
いかがでしょうか。

>>278 cvs update するといいと思う。
■ このスレッドは過去ログ倉庫に格納されています