元スレEmacs Part 46
emacs覧 / PC版 /みんなの評価 :
801 = :
だから昔から言ってるだろ、url.el は糞だって
それに依存してる eww もうんこを積み上げただけだよ
802 = :
文句言っても多国語対応は日本人がやらなきゃ誰もやらんよ
803 = :
>>800
いろいろ見てみた結果、以下になった。
1. Google はわけわからん UA(+たぶん日本っぽいIP) だと Shift_JIS 決め打ちで Accept-Charset がなんであれ Shift_JIS で表示してくる。
ついでに hidden 付き input 要素で ie=Shift_JIS を埋め込んでくる。ここらへんは Chrome とかの他のブラウザでも同じ挙動になった。
2. eww というより url.el はフォーム文字列がマルチバイト文字列の場合、UTF-8 決め打ちで送信する。
2 が問題で、普通は表示しているページと同じエンコーディングでフォーム文字を送信すべきなはず。
携帯なんかだとここが Shift_JIS 決め打ちらしいから google 側はとりあえずわけわからんのは Shift_JIS にしてるんかね。
url-encode-url 見ると確かにマルチバイト文字を utf-8 に変換してるんだよなぁ・・・
806 = :
POSTじゃなくてGETだな
Googleの検索ページがUTF-8で来てるのに、フォームの内容をShift_JIS決め打ちで送信するという挙動に問題がある
emacs側に非はないだろ
807 = :
まあクリック猿で解析してるつもりになってねーでRFC精読する作業にかかったらええがな
808 = :
>>807
お前口だけだなw
809 = :
>>806
いや、トップの検索ページ「も」Shift_JIS で来るのよ。
だから Shift_JIS でエンコードして GET 投げるべきだとは思う。
url.el 直すのもいいけど UA 変えて google のおせっかい回避が今んとこ無難な感じかなあ。
811 = :
>>809
(set-language-environment "UTF-8")してるからか俺んところはUTF-8で来てるよ
どのみち化けることには違いないが
812 = :
>>811
いやいや、取得したやつは eww が eww-display-html で decode-coding してるから
自分とこの buffer-file-coding-system で表示されるだけで、送られてくるデータは Shift_JIS なのよ。
例えば ↓の URL なんかは Shift_JIS で書かれたページなんだけど、eww だとどのみち decode されるから
文字コードのニモニックが S になったりはしない。他のブラウザだとちゃんとエンコードのところは Shift_JIS になる。
http://www.shtml.jp/blog/ga/sjis/safari_ad.html
813 = :
>>812
悪い間違えた…最初のページはSift_JISで検索結果のページがcharset=UTF-8になってるだけだった
結果ページの中身はUTF-8っぽくて一部ちゃんと表示されてるけど、化けてるページはそのまま表示してる感じか
814 = :
>>810
tabbarでも使ったらいいんじゃね
と思ったけどリンクを別バッファで開く機能もないから現状どうしょもないね
バッファ名も*eww*で決め打ちしてるからrenameして複数バッファで運用も無理だわ
815 = :
ewwなんて三回ぐらい起動してスゲーっていってあとは存在を忘れるようなのだろ
なにまじになっちゃってんの
816 = :
>>812
あー文字化け直った
最終的に (encode-coding-string str buffer-file-coding-system) してたから
(set-language-environment "Japanese") な環境でewwを起動して
http://www.google.co.jp/ にアクセスすれば化けないよ
つうか、文字化けしない人も居たからそういう事だね
819 = :
>>803 訂正だわ
フォームの入力文字集めてエンコードするのに url.el の機能は使ってなかった。
mm-url-encode-www-form-urlencoded でエンコードしてるんだけど
これは最終的に find-coding-systems-string でエンコーディングを決定してて、
漢字なんかが渡されると prefer-coding-system が utf-8 環境 なら utf-8 が、cp932 環境なら cp932 が返ってくる。
cp932 環境だと cp932 でエンコードされるから確かに Shift_JIS を要求してくるバージョンの google ではうまくいく。
でもそのかわり UTF-8 で送信してくるところでも cp932 で文字列送るようになっちゃうから
たとえばhttp://search.yahoo.co.jp/ なんかでうまく行かなくなるよ。
820 = :
とりあえず以下の advice 指定すれば Shift_JIS のページでは Shift_JIS を、
UTF-8 のページでは UTF-8 でフォームの文字を送信するようになった。
ほんとだったら form 要素の accept-charset 属性があったらそれも読まなきゃいけないんだろうけど・・・
(defadvice eww-display-html (after eww-change-buffer-coding-system activate)
(set-buffer-file-coding-system (ad-get-arg 0)))
(defadvice eww-submit (around eww-override-find-coding-systems-string activate)
(cl-letf (((symbol-function 'find-coding-systems-string)
(lambda (string)
(list buffer-file-coding-system))))
ad-do-it))
821 = :
>>819
なるほど、結局この辺の処理は英語圏のガイジンだとデバッグ出来ないし
日本人がパッチ書いて提出しないと直らないだろうね
ちなみに、eww-downloadの件は修正がコミットされたよ
822 = :
>>821
ほんとだ、bug-gnu-emacs にパッチ投げられてたんだ
複数バッファのパッチも投げられてるんだな
しかしパッチ作るにしても find-coding-systems-string を置き換えるなんてのはやり過ぎだし
どうしたもんだか
823 = :
ぶっちゃけ、emacs-w3mをもともと使っていた人は、ewwに乗り換えるメリット
は何もないんじゃないかしら。何かある?
826 = :
使えることに意味があるぐらいの話じゃないの、現状は。
javadoc が読めればいいやぐらいの期待感だと思うけど。
827 = :
ネイティブかつ高速なレンダラーになって
cssにもスクリプトにも対応の可能性がひらけてる
cssはw3でテキストブラウザなりのことはやれる実績あるし
828 = :
10年程前はテキストブラウザでもよかったかもしれないけど今はキツくない?
個人的にはテキストブラウザで見れるページの方が好きだけど
829 = :
10年前だってキツかったさ
830 = :
emacs-w3mの操作でリンクにカーソル合わせるためにAcejump使ってるけど
もうちょっとスマートな方法ある?
遅いけどvim-w3mの'f'やfirefoxのvimperatorの'f'等に比べて1つタイプ数と見るものが多い
831 = :
結局ちゃんと見ること出来ないページのほうが多くて普通のブラウザ使っちゃう回数が増えて
はじめからつかわなくてもよくね?ってなるのが落ちだわな
832 = :
ewwは大器晩成なんだ
長い目で見てやってくれ
833 = :
マルチバイトなんてどうでもいい人のほうが多いわけだし、
日本人ですら、APIドキュメントとか英語で読んでる人多いだろうし、
いまでも十分役に立ってるけど
ドキュメント累はemacs-w3mから乗り換えたよ
834 = :
>>833
立ち位置的にそこら辺で使うのがメインであって
まともなブラウジングは普通のブラウザ使うよな
835 = :
一旦 alias された変数をそれぞれ別の変数にするにはどうしたらよいのでしょうか?
(defvar a nil)
(defvaralias 'b 'a)
(makunbound 'b) ;; 一旦解除しても
(setq a 10) ;; この時点で b が復活してしまう
b ;; => 10
(makunbound 'a) ;; alias 元を消しても
b ;; => void variable ;; 一旦は消えるが・・
(setq a 10) ;; a を設定したとたん
b ;; => 10 ;; b も復活する・・・
具体的にやりたいことは、input-method-deactivate-hook と input-method-inactivate-hook が
alias 化されているにもかかわらず、deactivate-input-method の run-hooks で両方呼ばれてるので
同じフックが二度実行されてしまうのを解消したいのです。
838 = :
よく Emacs は小指が~って言うけど、
左手親指+左手人差し指の M-b が辛すぎて親指が壊れそう…(´;ω;`)
1. 親指でなく小指か薬指を使う
2. 右 Alt キーを右手の小指で押す
3. b キーを右手の人差し指で 押す
4.
839 = :
それは親指脆すぎ
鍛えたほうがいい
840 = :
Emacsの為にキー配置変えてしまうのもあり
キーバインドではなくてキーそのものを変える
841 = :
右Alt の位置が右の方にあると確かに親指が内側に寄るからちとつらいかもしれんねえ
842 = :
>>840
昔の84キーボードなんで最下段は Ctrl と Alt とスペースキーしかないんですわ
USB脳波Altキーとか出ないかなー
846 = :
変換→Ctrlのみだが捗る
片手でカーソルが動かせるし小指を酷使して痛める事が無い
俺は左手小指を酷使して痛めたからよく分かるw
ちなみに早い内に酷使するのを止めればちゃんと直る
847 = :
俺も小指やられて整形外科に通うハメになったことあるけど
たぶん痛めちゃう人は力入れすぎてるんだ。
必要最小限の力で押すようにしてから全く痛めなくなった。
848 = :
最近、小指を気にして skk の変換開始を無変換 sticky にしたけど、真に小指を痛めていたのはどうやら Ctrl + b だったようだ。
私の小さい手に、あのキー配置は過酷すぎる。
849 = :
15年間くらいEmacsを使ってるが小指を痛めたことは一度もないなぁ
ピアノやってたこととか関係あるのかな
850 = :
>>842
これ試してみなよ
みんなの評価 :
類似してるかもしれないスレッド
- Emacs Part 40 (1001) - [92%] - 2012/9/7 0:30
- Emacs Part 47 (995) - [92%] - 2015/4/19 13:01
- Emacs Part 36 (1001) - [92%] - 2011/3/1 5:02
- Emacs Part 42 (1001) - [92%] - 2013/6/9 5:15 △
- Emacs Part 43 (1001) - [92%] - 2013/12/14 11:30
- Emacs Part 45 (1001) - [92%] - 2014/6/23 9:45
- Emacs Part 44 (1001) - [92%] - 2014/2/8 8:01 △
- Emacs Part 48 (997) - [92%] - 2015/12/9 15:15
- Emacs Part 49 (974) - [92%] - 2016/12/7 9:45
- Emacs Part 41 (1001) - [92%] - 2012/12/24 4:15
- Emacs Part 33 (1001) - [84%] - 2010/3/9 20:01 ○
- Emacs Part 53 (989) - [84%] - 2022/12/5 12:45
- Emacs Part 32 (1001) - [84%] - 2009/12/20 2:04 ○
- Emacs Part 31 (1001) - [84%] - 2009/10/23 10:31 ○
トップメニューへ / →のくす牧場書庫について