コンテンツにスキップ

ediff でのレビュー

ecc-review-style は、レビューのメニューから開くレビューの表示方法を決めます。デフォルトの 'diff は diff バッファです。'ediff にすると、2 つの側を ediff で表示します。

(setq ecc-review-style 'ediff)

メニューの -e で、1 つのレビューだけ表示方法を切り替えられます。

レビューのすべてのファイルが 1 つの ediff セッションに入ります。一方のウィンドウに変更前、もう一方に変更後の内容が並び、各ファイルの前に ═══ path ═══ の行が入ります。バイナリのファイルや ecc-review-max-bytes を超えるファイルは、区切りの行だけになります。どちらの側も読み取り専用なので、ediff のコピーのコマンドは働きません。コメントを付けて送り、ファイルの編集は Claude に任せます。

レビューはフレーム全体を使います。画面上のウィンドウの中に開くには、ecc-review-ediff-full-frame を nil にします。C-c C-k と q で、開く前のウィンドウの配置に戻ります。送信してもレビューは開いたままです。

レビューは、変更前を上、変更後を下に置き、Claude の返答の欄をその横に置いて開きます。右に置くには狭いフレームでは、欄は下に置きます。

上下に並んだ ediff のレビュー。上は変更前の reader.py、下は今の reader.py。追加された 2 行が強調されている。各ウィンドウの上にキーの行があり、右の欄に Claude の最新の返答が出ている

各ウィンドウのヘッダー行にはキーが並びます。モードラインにはカーソルのあるファイルが出て、下または右のウィンドウでは 3/12 のような現在位置も出ます。ediff のコントロールパネルは隠れています。? ですべてのキーとともに表示し、もう一度押すと隠します。ほかの ediff セッションは、自分で設定したウィンドウ配置のままです。

各ファイルはそのメジャーモードと同じ色で表示され、変わった語は太字になります。

| で 2 つの側を左右に並べ、欄はその下に移ります。もう一度 | を押すと上下に戻ります。

左右に並べて開くには:

(setq ecc-review-ediff-layout 'side-by-side) ; the default is 'stacked

キーボードは変更後の側から始まります。どのキーも両方のウィンドウで使え、数字で回数を指定できます。3j は 3 番目の差分へジャンプします。

ポイントの動きがレビューを動かします。ポイントが差分に入るとそれが現在の差分になり、もう一方のウィンドウは対応する行が同じ高さに来るようにスクロールします。n と p は、ポイントより下の次の差分、上の前の差分へ、ファイルをまたいで移ります。C-v やマウスで一方だけをスクロールしても、もう一方は動きません。v と V は両方をスクロールし、C-l で位置をそろえ直します。

RET は、ポイントのある行でファイルを今の内容のまま別のフレームに開きます。レビューのフレームとキーボードはそのままです。

c はポイントのある行にコメントします。変更前のウィンドウでは変更前の行に、変更後のウィンドウでは今の行に付きます。両方の側にある行には、コメントを付ける対象がないので、c はそう伝えます。

? で出したパネルでは、c は現在の差分にコメントするか、そこにある Claude の最新のコメントに返信します。コメント、送信、ファイルの変更への追従は diff バッファと同じです。読み直しても、現在の差分と各側の位置は保たれます。

キー 動作
c ウィンドウではポイントのある行にコメント。? で出したパネルでは現在の差分にコメント、またはそこにある Claude の最新のコメントに返信。もう一度押すと編集
{ / } 前 / 次のコメント
l コメントへジャンプ
x ポイントのある行のコメント、なければ現在の差分のコメントを削除(C-u x: どのコメントでも)。diff バッファでは d
a Claude のコメントの表示・非表示
n / p / j 次 / 前の差分、または番号の差分
v / V 両方のウィンドウをスクロール
RET ファイルを別のフレームに開く
s / / ファイルを一覧・絞り込む
T / t / M Claude と話す
u / d 返答の欄を戻す / 進める
y 返答の欄に出ている、Claude が待っているものに答える
| 2 つの側を上下と左右で切り替える
! ファイルを読み直す(g はない)
] / [ プルリクエストの次 / 前のコミット
C-c C-c まだ送っていないコメントをプロンプトとして送信(C-u C-c C-c で送信前に編集)
C-c C-a プルリクエストのすべてのコミットのコメントを送信
C-c C-k レビューとコメントを破棄
q レビューを終える
? コントロールパネルの表示・非表示

ediff がフレームを使っている間、セッションは見えません。欄には、セッションの最新の返答が届くそばから表示されます。ツールの呼び出しは 1 つずつ 1 行で出ます。色はトランスクリプトと同じです。

ターンごとに内容は入れ替わり、会話の全体はトランスクリプトに残ります。欄が選択されることはありません。u と d でレビューから欄をスクロールできます。前に戻すと、末尾がまた見えるまで欄は末尾を追いません。

Claude が許可を求めたとき、質問したとき、承認するプランがあるときは、欄にその内容が出て、レビューを離れずに y で答えられます。

変数 既定値 説明
ecc-review-talk-reply-width 75 右に置く欄の幅。diff に 80 桁を残せない狭いフレームでは、欄は下に移る
ecc-review-talk-reply-height 12 下に置く欄の高さ。nil で欄を出さない
ecc-review-talk-reply-place 'auto 'frame はレビューごとに専用のフレームに欄を出す。そのフレームはフォーカスを取らない