2012-04-23 8 views
9

Necesito un comando para ejecutar cada vez que se crea un nuevo marco en Emacs. Hasta ahora he estado usando after-make-frame-functions, pero este gancho solo recibe llamadas en marcos creados por make-frame. De hecho, necesito algo que se ejecute cada vez que el comando emacsclient -c crea una nueva ventana.gancho de Emacs para nuevos marcos

¿Hay alguna manera de lograr eso?

Respuesta

9

Tengo algunas dificultades para entender tu pregunta. El servidor de Emacs llama al make-frame cuando necesita crear un nuevo fotograma, por lo que after-make-frame-functions también debería funcionar en ese caso. Entonces, ¿cuál es tu problema real?

¿Desea que su función se ejecute incluso si el servidor de Emacs no crea un nuevo marco? Si es así, intente agregar su función a server-switch-hook, así como after-make-frame-functions.

es una variable definida en server.el.

Documentación: Enganche ejecutado al cambiar a un búfer para el servidor Emacs .

+3

Sí, su primer párrafo es correcto. El comando que quería ejecutar funciona perfectamente cuando hago 'make-frame', pero simplemente no funcionaba cuando se creaba un nuevo cuadro con' emacsclient -c'. Así que asumí que el servidor no había llamado al enganche cuando ejecuté 'emacsclient -c'. Lo hice. Mordí más pruebas ahora, y resulta que hay algo mal con mi comando. Perdón por la pregunta sin sentido. – Malabarba

+3

No hay problema. [Depuración de patos de goma] (http://en.wikipedia.org/wiki/Rubber_duck_debugging) ¡en acción! –

+2

¡Increíble! Te presento el concepto de depuración meta pato de goma por proxy, donde alguien - por ej. yo mismo: encuentra a alguien con exactamente el mismo problema en SO y descubre que el problema en realidad no existe. Estoy en deuda con ustedes dos. – leoger