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.