Nigdy nie twórz ramki w Ediff


14

Ogólnie nie lubię ramek. Teraz używam

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

Aby upewnić się, że ediffnie tworzy ramki po uruchomieniu.

Jednak niektóre polecenia, takie jak ediff-show-registrywciąż otwierają nowe ramki.

Czy jest jakiś sposób, aby całkowicie wyłączyć tworzenie ramek ediff?


Jak o modyfikacji ediff-skip-unsuitable-frameslub komentując, że się całkowicie wewnątrz ediff-show-registry- np Wykomentuj: (ediff-skip-unsuitable-frames 'ok-unsplittable)?
— prawnik

5
Gdy już tam jesteś, zastanów się nad przeszukaniem źródła rodziny ediffbibliotek, (make-framea znajdziesz kilka miejsc, które wymagają naprawy w celu dostosowania do twoich preferencji. Twoja prośba jest z pewnością uzasadniona i zasługuje (moim zdaniem) na prośbę o dodanie funkcji do autora i / lub zespołu Emacsa - większość osób uważa, że ediff-setup-windows-plainpowinna złożyć wniosek na całym forum bez różnych make-framewyjątków.
— prawnik

Odpowiedzi:


3

Istnieje wewnętrzny predykat o ediff-init.elnazwie ediff-window-display-p. Kiedy go przedefiniowałem (oczywiście po załadowaniu Ediffa), wszystko działa w jednej ramce, łącznie z funkcją, o której wspomniałeś jako problem:

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

Zgadzam się z @lawlist, że jest to fajna prośba o funkcję - do naprawy ediff-window-setup-function.


2
Można to lepiej napisać (advice-add 'ediff-window-display-p :override #'ignore), co można łatwiej odwrócić advice-remove(plus nie wymaga wcześniejszego załadowania ediff).
— npostavs

@npostavs great! Dzięki za mądrzejszy kod!
— cyberbisson

Próbowałem tego, ale niestety spowodowało to, że ediff przestał używać mojej niestandardowej funkcji konfiguracji okna.
— tboyce12

@ tboyce12 To mylące ... dlaczego masz niestandardową funkcję konfiguracji okna, jeśli nie chcesz, aby nowe okna (tj. ramki) były wyświetlane? Czym zajmuje się ta funkcja?
— cyberbisson

Chcę nowe okna, ale nie nowe ramki. Domyślnie ediff-setup-windows-plainprzejmuje całą ramkę - chcę, aby moje okna „kontekstowe” były otwarte (np. Notatki i inne pliki). Napisałem więc niestandardową funkcję konfiguracji okna (używa niestandardowego bufora wyświetlania zasilanego przez ace-window, aby wybrać, gdzie może dzielić okna i wyświetlać nowe bufory). Wygląda na to, że kiedy Ediff uruchamia się, sprawdza to, ediff-window-display-pa jeśli jest fałszem, pomija niestandardową funkcję konfiguracji okna i używa ediff-setup-windows-plain. Więc dla mojej niestandardowej konfiguracji albo unikam ediff-show-registry, albo piszę niestandardowe polecenie.
— tboyce12
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.