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.