Jangan pernah membuat bingkai di ediff


14

Secara umum, saya tidak suka bingkai. Saat ini, saya menggunakan

(setq ediff-window-setup-function #'ediff-setup-windows-plain)

Untuk memastikan bahwa ediffitu tidak membuat bingkai ketika dimulai.

Namun, perintah tertentu, seperti ediff-show-registrymasih membuka frame baru.

Apakah ada cara saya dapat sepenuhnya menonaktifkan pembuatan bingkai ediff?


Bagaimana memodifikasi ediff-skip-unsuitable-frames, atau berkomentar bahwa seluruhnya dalam ediff-show-registry- misalnya, komentar keluar: (ediff-skip-unsuitable-frames 'ok-unsplittable)?
— lawlist

5
Ketika Anda berada di sana, pertimbangkan mencari sumber- ediffkeluarga perpustakaan (make-framedan Anda akan menemukan beberapa tempat yang perlu diperbaiki agar sesuai dengan preferensi Anda. Permintaan Anda tentu masuk akal, dan akan pantas (menurut saya) permintaan fitur kepada penulis dan / atau tim Emacs - kebanyakan orang akan menganggap ediff-setup-windows-plainharus berlaku di seluruh papan tanpa berbagai make-framepengecualian.
— lawlist

Jawaban:


3

Ada predikat internal di ediff-init.el, disebut ediff-window-display-p. Ketika saya mendefinisikannya kembali (setelah memuat ediff, tentu saja) seperti itu, semuanya bekerja dalam satu bingkai, termasuk fungsi yang Anda sebutkan sebagai masalah:

(defun ediff-window-display-p () nil)

Saya setuju dengan @lawlist bahwa ini adalah permintaan fitur yang bagus - untuk memperbaikinya ediff-window-setup-function.


2
Ini mungkin lebih baik ditulis (advice-add 'ediff-window-display-p :override #'ignore), yang dapat lebih mudah dibalik dengan advice-remove(ditambah tidak perlu memuat ediff terlebih dahulu).
— npostavs

@npostavs hebat! Terima kasih untuk kode yang lebih cerdas!
— cyberbisson

Saya mencoba ini, tetapi sayangnya menyebabkan Ediff berhenti menggunakan fungsi pengaturan jendela kustom saya.
— tboyce12

@ tboyce12 Itu membingungkan ... mengapa Anda memiliki fungsi pengaturan jendela kustom jika Anda tidak ingin jendela baru (yaitu bingkai) ditampilkan? Apa fungsinya?
— cyberbisson

Saya ingin windows baru, tetapi bukan frame baru. Default ediff-setup-windows-plainmengambil alih seluruh bingkai - Saya ingin tetap membuka "konteks" jendela saya (mis. Catatan dan file lainnya). Jadi saya menulis fungsi pengaturan jendela khusus (menggunakan buffer-tampilan kustom yang didukung oleh jendela-ace untuk memilih di mana mungkin membagi windows dan menampilkan buffer baru). Tampaknya ketika Ediff melakukan booting, ia memeriksa ini ediff-window-display-pdan jika salah, memintas fungsi dan penggunaan pengaturan jendela kustom ediff-setup-windows-plain. Jadi untuk pengaturan khusus saya, saya akan menghindari ediff-show-registry, atau menulis perintah khusus.
— tboyce12
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.