Ніколи не створюйте кадр у едіффі


14

Взагалі мені не подобаються кадри. Зараз я використовую

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

Щоб ediffне створити кадр при його запуску.

Однак певні команди, як і ediff-show-registryраніше, відкривають нові кадри.

Чи є якийсь спосіб я повністю відключити створення кадрів ediff?


Як щодо зміни ediff-skip-unsuitable-framesабо коментування цього цілком всередині ediff-show-registry- наприклад, коментар (ediff-skip-unsuitable-frames 'ok-unsplittable):?
законник

5
Поки ви перебуваєте в цьому, подумайте про пошук джерела ediffсімейства бібліотек, (make-frameі ви знайдете кілька місць, які потребують виправлення відповідно до ваших уподобань. Ваш запит, безумовно, є обґрунтованим, і він заслуговує (на мій погляд) запиту на зображення до автора та / або команди Emacs - більшість людей вважають, що вони ediff-setup-windows-plainповинні подавати заявку без різних make-frameвинятків.
законник

Відповіді:


3

Є внутрішній присудок у ediff-init.el, називається ediff-window-display-p. Коли я переосмислив це (звичайно, після завантаження ediff) так, все працює в одному кадрі, включаючи функцію, яку ви назвали проблемою:

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

Я згоден з @lawlist, що це хороший запит на функцію - виправити ediff-window-setup-function.


2
Це може бути краще написано (advice-add 'ediff-window-display-p :override #'ignore), що можна легше змінити advice-remove(плюс для цього спочатку не потрібно завантажувати едіфф).
nпостаs

@npostavs чудово! Дякуємо за розумніший код!
кібербіссон

Я спробував це, але це, на жаль, змусило едіфф перестати використовувати мою власну функцію налаштування вікон.
tboyce12

@ tboyce12 Це заплутано ... чому у вас є спеціальна функція налаштування вікон, якщо ви не хочете показувати нові вікна (тобто кадри)? Що робить функція?
кібербіссон

Я хочу нових вікон, але не нових кадрів. За замовчуванням ediff-setup-windows-plainбереться весь кадр - я хочу, щоб мої "контекстні" вікна були відкритими (наприклад, примітки та інші файли). Тому я написав спеціальну функцію налаштування вікон (використовує спеціальний буфер дисплея, що працює від вікна-вікна, щоб вибрати, де, можливо, розділити вікна та відобразити нові буфери). Здається, що при завантаженні Ediff це перевіряє це, ediff-window-display-pі якщо це неправда, обходить функцію налаштування вікон та використовує ediff-setup-windows-plain. Тож для мого користувальницького налаштування я або уникатиму ediff-show-registry, або напишу власну команду.
tboyce12
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.