タグ付けされた質問 「ediff」

EdiffはEmacsの機能で、2つ以上のファイルまたはバッファーを比較したり、2つのファイルまたはバッファーを1つにマージしたりできます。

1
emacsがこのファイルを回復することを提案したときにdiffを表示する方法は?
時々起こる:emacsはファイルに保存されていない変更を回復するように促しますが、それらの変更が必要かどうかは思い出せません。 recover-this-fileバッファから始めて、差分を表示する方法や、変更を直接表示する方法はありますか? たとえばmagit-mode、ステータスバッファ内の編集済みファイルをタブで移動したときに得られるもののようなものです。
51 buffers  saving  ediff 

2
「文字レベル」差分で2つのバッファ間の差分を表示する方法
2つのバッファの違いを比較する場合、M-x ediff-buffers単語内で変更された特定の文字(つまり、「文字レベル」の差分)を示しません。最新の差分ツールのほとんどは、単語内の差分を表示します。 Emacsはデフォルトでこの重要な(または明らかに有用な)機能を欠いているようです。Emacsに文字ごとにdiffを表示させるにはどうすればよいですか? ここM-x ediff-buffers diff1 diff2でを更新しemacs -Qて、私のテーマが邪魔にならないようにするために使用します: Meldに貼り付けた同じテキストを次に示します。
20 ediff  diff-mode 

2
Ediffで両方のバリアントを使用する方法は?
Ediffインターフェースには+ボタンがありますが、何もしないようです(ミニバッファーを押すと常に「nil」と表示されます)、このボタンは結果バッファーで両方のバリアントを使用するためのものだと思いました。 とにかく、元の質問は次のとおりです:バッファーAとBの両方のコンテンツをバッファーCに入れることで、Ediffでマージ競合を解決するにはどうすればよいですか(Cを編集することはできますが、これをもっと簡単に行えることを願っています)。 ファイルAがこれだとします: 同じ行 別の行 同じ行 ファイルBは次のとおりです。 同じ行 別の行 同じ行 AをBにマージした結果のファイルCが次のようになるようにします。 同じ行 別の行 別の行 同じ行
17 ediff 

3
Gitコンフリクトマーカーが含まれているファイルのediff-ingを開始する方法は?
コマンドラインでのgitマージの試行に続いて、ファイルには標準の競合マーカーが含まれており、emacsはこれを使用してバッファーに再ロード(元に戻しました)しています。 競合を解決するために、ある種のマージモードを開始するにはどうすればよいですか?ediff-filesのように、ファイルの左/右/マージされたバージョンを示す個別のバッファーを取得できますか? (Macの場合、emacs-prelude v24.4)
16 git  ediff  prelude 

1
ediffでフレームを作成しない
一般的に、私はフレームが嫌いです。今、私は使っています (setq ediff-window-setup-function #'ediff-setup-windows-plain) ediff開始時にフレームが作成されないようにするため。 ただし、ediff-show-registry新しいフレームを開くようなコマンドもあります。 フレームの作成を完全に無効にする方法はありますediffか?
14 frames  ediff 

3
「y」と入力せずにすぐにediffを終了する方法
ediffを終了qすると、本当に終了するかどうかを尋ねられます。すぐにやめたいです。カスタマイズには明らかなものはありません。ここにはqキーを再定義することで機能するように見える解決策がありますが、関数がどのように機能するかの詳細はわかりません。本当にやめることをやめるためにやめる最も簡単な方法は何ですか?
13 ediff 

2
Ediff:空白の違いを表示
Ediffが空白以外の違いに対して行うように、別の色を使用して空白を強調表示する方法はありますか? たとえば、空白の違いだけがある2つの領域を次に示します。 そしてここに空白以外の違いがある2つの領域があります: 空白以外の違いはediff-fine-diff-*面で強調表示されますが、空白の違いは強調されません。空白の違いが何であるかを知る方法を教えてください。
11 ediff 

1
「バッファを本当に編集する」で、emacsはediff-current-fileを自動的に実行しましたか?
環境 emacsが編集バッファーの外でファイルが変更されたことを検出したとき。 観察された emacsは尋ねます: ディスクでsomefilenameが変更されました。本当にバッファを編集しますか?(y、n、rまたはCh) (ちなみに、実際には変更がない場合でも発生することがあります。たとえば、時計がずれているサーバー上のリモートファイルですが、問題はすべてのケースで興味深いものです。) 願い emacsは尋ねます: ディスクでsomefilenameが変更されました。本当にバッファを編集しますか?(y、n、r、dまたはCh) を押すdと、バージョン間の違いが表示されます。たとえばediff-current-file、インタラクティブに違いを確認できます。 追加情報 これは、ローカルにカスタマイズされた構成ファイルが所有するパッケージの新しいバージョンによって更新されたことを検出したときに、Debianパッケージ管理が行うことと似ています。例については、新しいバージョンの構成ファイル/ etc / default / grubが利用可能ですが、現在インストールされているバージョンはローカルで変更されています-Unix&Linux Stack Exchange 尋ねる前に検索 私は通常、解決策への道を見つけます(例:emacsclient-外部スクリプトからファイルを開いて、emacsが既に実行されているかどうかにかかわらず、単純な式を実行します-Emacs Stack Exchange)。これを検索した後、既存の解決策は見つかりませんでした。 私はこれを自分で調整することを検討しますが、emacs-lispとemacsの内部については十分に熟達していません。 ソリューションのスケッチ C-g次に、「Mx ediff-current-file」を押すと、いくつかのキーストロークを犠牲にして機能します。 ここでの目標ediff-current-fileは、上記のプロンプトで1回のキープレスで実行することです。



4
一時ファイルを作成しない2つのバッファーの差分
2つのバッファーの差分が必要です。1つの方法は、これらのバッファーの内容を含む一時ファイルを作成し、diff関数を使用することです。ただし、バッファには機密情報が含まれているので、ディスク上にその情報をクリアテキストで保存しないようにします。 バッファを直接比較できるediffの使用を考えましたが、ediffはインタラクティブセッションを開始し、これをスクリプトで使用したいと考えています。
9 ediff  diff 

2
コマンドラインから(ediff-directoriesの)ediff-filesでemacsを起動します
emacsを起動して、ファイルまたはディレクトリを編集します。たとえば、次のようなものを希望します。 emacs -f ediff-files file1 file2 しかし、これを行うと、比較する2つのファイルとしてfile1とfile2が使用されません。むしろ、emacsはファイルを区別するように促します。 誰もがこれを1つのコマンドラインで行う方法を知っていますか?

2
バッファをリビジョンと比較するにはどうすればよいですか?
ediffを実行して、ファイルの現在のバージョン(git内)を別のブランチ上のファイルのバージョンと比較したいと思います。 M-x ediff-revision問題のファイルのオープンバッファー内から実行します。私は2つの質問に答えます。 ファイルのリビジョンを比較する:私はこの回答を空白にします(デフォルトは現在のバッファーで、これが正しいものです)。 比較するリビジョン1:デフォルトを再び受け入れます(「デフォルトファイルの最新バージョン」)。 比較するリビジョン2:gitブランチ名を入力します これは、2つのファイルの違いを表示するのに最適です。ただし、現在のバージョンを編集できるようにしたい(つまり、diffのブロックをコピーまたは削除するためにヒットaまたはbediffで)、「現在のバージョン」のバッファーは、製造名(file.~git-branch~)の読み取り専用バッファーです。「現在のバージョン」のバッファを、現在のブランチのバージョンの読み取り専用バッファではなく、最初の読み取り/書き込みバッファにしたい。

2
ediffによって開かれた組織ファイルの折りたたみを防止
ediffを使用して2つの組織ファイルをマージすると、折りたたみが邪魔になるため、ediffによって作成された組織モードバッファーですべての折りたたみを無効にしようとしています。diff以外の折りたたみ動作は影響を受けません。 単純に私は次のようなものがうまくいくはずだと思います: (add-hook 'ediff-mode-hook (lambda () (set (make-local-variable 'org-inhibit-startup-visibility-stuff) t))) これが(org-startup-foldedまたはではなくorg-agenda-inhibit-startup)変更する組織変数であると私はかなり確信しています。 私は無駄に様々なフックを試してみた(主にediff-mode-hook、ediff-before-setup-hook、ediff-meta-mode-hook、およびediff-prepare-buffer-hook-遅すぎおそらくある)インターン変数が継承されることを期待して。 make-local-variableを誤って使用している可能性は十分にあります。パターンは、私が広く見たものから借りたものです。 値をグローバルに設定することのみが効果的でした(しかし、それは私が狙っているものではありません)。アドバイスメカニズムを(ab)使用する必要がありますか?

1
ediffを使用してGithubプルリクエストを表示する
Githubプルリクエストを1つのエディフ「セッション」としてレビューできるようにしたいと思います(それが正しい場合)。ただし、magit-ediffMagitから使用する場合は、一度に1つのファイルしかediffできないため、ediffセッションを終了して、次のファイルで新しいediffセッションを再開する必要があります。 ediffを使用して、複数のコミットと複数の変更されたファイルがあるGithubプルリクエスト全体を確認する方法はありますか?
7 ediff 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.