続 *git-diff* の件
ぶえーっくしょん。ずるずる。
あぁ,すみませんね,ベタベタで。
花粉が非常に多いですね,今日。
一応わからない人のために言っておくけど,
鼻水のベタベタ感と,ベタがかかってるんだからね。
よし,出だし好調。
結論
ん? はて? ページャとな?
cygwin から。
% GIT_PAGER='lv -Os' git diff
+ほげ
あうちっ!
Poderosa で設定を utf-8 に変えてみる。
再度!
% GIT_PAGER='lv -Ou8' git diff
+ほげ
あうあうあー。
何これ。何なの?
その前の結論
うがー。無理無理。しばらく寝かすことにするお。
その1分くらい前
なぜだめなんだ?
あぁ,別の方法で試してみよう。
さかのぼること30分くらい。
よし。このアドバイスでいけるだろう。
オレにしては結構頑張ったな。
(defadvice git-run-command-buffer (before my-git-run-command-buffer-advice) (let ((bufname (ad-get-arg 0)) (files (ad-get-arg 6)) from-coding f b) (when (equal bufname "*git-diff*") (if (listp files) (setq f (car files)) (setq f files)) (cond ((get-buffer f) (save-excursion (set-buffer (get-buffer f)) (setq from-coding buffer-file-coding-system))) (t (setq b (get-buffer-create f)) (save-excursion (set-buffer b) (setq from-coding buffer-file-coding-system)) (kill-buffer b))) (save-excursion (set-buffer (get-buffer-create bufname)) (set-buffer-file-coding-system from-coding)) (message (format "DEBUG: %s" from-coding))))) (ad-activate 'git-run-command-buffer)
git-status バッファから,= して diff みてみた。
ダメだ。utf-8 にはなっているけど,化けている。
でも,この化け方はどっかでなじみがある気がするお。
さらに30分くらい前
呼び出しの流れはこんな感じだから,
- git-status git-diff-file git-run-command-buffer get-buffer-create buffer-name # ここで *git-diff* バッファを作っている git-setup-diff-buffer with-current-buffer display-buffer (built-in function)
"*git-diff*" バッファを作る前に,"*git-diff*" バッファを先に作って,
コーディングを utf-8 にしてしまえばよろしいんでないかい?
我ながらナイスアイデア。
教えてもらった,set-process-coding-system を使おうと思ったけど,
オレのテクでは,プロセスを捕まえられなかった。orz
ごめんなさい。
にいちゃん,ごめん。あやまるな,みきお。みたいな。
まとめ
疲れたお。
流れを,逆から書いてみたが,破綻した。
読みにくくてごめんなさい。
どうやら,原因は GIT_PAGER にありそうだな。
設定した覚えはないし。
たぶん,それを調べれば行けそう。
でも! でも! 現実逃避でやっていたけど,疲れたんだ。
お先で〜す。
あぁ,まだ続くよ,きっと。ずっと。きみと。ぼくと。