Nunca cree marco en ediff


14

En general, no me gustan los marcos. En este momento, estoy usando

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

Para asegurarse de que ediffno crea un marco cuando se inicia.

Sin embargo, ciertos comandos, como ediff-show-registrytodavía abren nuevos marcos.

¿Hay alguna forma de deshabilitar completamente la creación de marcos ediff?


¿Qué hay de modificar ediff-skip-unsuitable-frameso comentar eso completamente dentro ediff-show-registry, por ejemplo, comentar (ediff-skip-unsuitable-frames 'ok-unsplittable):?
— leyes del

55
Mientras lo hace, considere buscar en la fuente de la edifffamilia de bibliotecas (make-framey encontrará algunos lugares que deben arreglarse según sus preferencias. Su solicitud es ciertamente razonable y merecería (en mi opinión) una solicitud de función al autor y / o al equipo de Emacs; la mayoría de las personas asumirán que ediff-setup-windows-plaindeben presentar una solicitud en todos los ámbitos sin las diversas make-frameexcepciones.
— leyes del

Respuestas:


3

Hay un predicado interno en ediff-init.el, llamado ediff-window-display-p. Cuando lo redefiní (después de cargar ediff, por supuesto), todo funciona en un solo marco, incluida la función que mencionó como un problema:

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

Estoy de acuerdo con @lawlist en que esta es una buena solicitud de función: solucionar ediff-window-setup-function.


2
Esto podría estar mejor escrito (advice-add 'ediff-window-display-p :override #'ignore), lo que se puede revertir más fácilmente advice-remove(además, no requiere cargar primero el ediff).
— npostavs

@npostavs genial! ¡Gracias por el código más inteligente!
— cyberbisson

Intenté esto, pero desafortunadamente causó que ediff dejara de usar mi función de configuración de ventana personalizada.
— tboyce12

@ tboyce12 Eso es confuso ... ¿por qué tiene una función de configuración de ventana personalizada si no desea que se muestren nuevas ventanas (es decir, marcos)? ¿Qué hace la función?
— cyberbisson

Quiero nuevas ventanas, pero no nuevos marcos. El valor predeterminado se ediff-setup-windows-plainhace cargo de todo el marco: quiero mantener abiertas mis ventanas de "contexto" (por ejemplo, notas y otros archivos). Así que escribí una función de configuración de ventana personalizada (utiliza un búfer de visualización personalizado impulsado por ace-window para elegir dónde dividir las ventanas y mostrar nuevos búferes). Parece que cuando Ediff arranca, comprueba esto ediff-window-display-py, si es falso, omite la función de configuración de la ventana personalizada y la usa ediff-setup-windows-plain. Entonces, para mi configuración personalizada, evitaré ediff-show-registryo escribiré un comando personalizado.
— tboyce12
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.