Asla ediff'te çerçeve oluşturma


14

Genel olarak çerçeveleri sevmiyorum. Şu an kullanıyorum

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

Bunun ediffbaşladığında bir çerçeve oluşturmamasını sağlamak için .

Ancak, bazı komutlar, ediff-show-registryyine de yeni kareler açar.

Çerçevelerin oluşturulmasını tamamen devre dışı bırakabilmemin bir yolu var mı ediff?


Nasıl değiştirmeyle ilgili ediff-skip-unsuitable-framesveya tamamen dahilinde olduğuna dikkat yorumlama ediff-show-registry- out, örneğin yorumunu: (ediff-skip-unsuitable-frames 'ok-unsplittable)?
hukukçu

5
Siz edifforadayken, kitaplık ailesinin kaynağını aramayı düşünün (make-frameve tercihlerinize göre düzeltilmesi gereken birkaç yer bulacaksınız. Talebiniz kesinlikle makul ve yazar ve / veya Emacs ekibine bir özellik isteği (benim görüşüme göre) haklı olacaktır - çoğu insan ediff-setup-windows-plainçeşitli make-frameistisnalar olmaksızın kurul genelinde başvurması gerektiğini varsayacaktır .
hukukçu

Yanıtlar:


3

ediff-init.elDenilen bir iç yüklem vardır ediff-window-display-p. Elbette (ediff yükledikten sonra) yeniden tanımladığımda, sorun olarak bahsettiğiniz işlev dahil olmak üzere her şey tek bir çerçevede çalışır:

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

Düzeltmek için @lawlist ile bunun güzel bir özellik isteği olduğunu kabul ediyorum ediff-window-setup-function.


2
Bu daha iyi yazılabilir (advice-add 'ediff-window-display-p :override #'ignore), bu da daha kolay tersine çevrilebilir advice-remove(ayrıca önce ediff yüklemesi gerekmez).
npostavs

@npostavs harika! Daha akıllı kod için teşekkürler!
cyberbisson

Bunu denedim, ama ne yazık ki ediff benim özel pencere kurulum işlevini kullanarak durdurmak için neden oldu.
tboyce12

@ tboyce12 Bu kafa karıştırıcı ... Yeni pencerelerin (yani çerçevelerin) gösterilmesini istemiyorsanız neden özel bir pencere ayarlama işleviniz var? İşlev ne yapar?
cyberbisson

Yeni pencereler istiyorum ama yeni çerçeveler istemiyorum. Varsayılan ediff-setup-windows-plaintüm kareyi devralır - "Bağlam" pencerelerimi açık tutmak istiyorum (örn. Notlar ve diğer dosyalar). Bu yüzden özel bir pencere kurulum işlevi yazdım (belki pencereleri bölmeyi ve yeni tamponları göstermeyi seçmek için ace-window tarafından desteklenen özel ekran arabelleğini kullanır). Ediff açıldığında bunu kontrol eder ediff-window-display-pve yanlışsa, özel pencere kurulum işlevini atlar ve kullanır ediff-setup-windows-plain. Bu yüzden özel kurulumum için, kaçınacağım ediff-show-registryveya özel komut yazacağım.
tboyce12
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.