¿Cómo se ejecuta un comando justo después del marco de Emacs se ha rendido?
Pregunta
Estoy tratando de encontrar la manera de utilizar el código de Emacs Browser (BCE) y una de las cosas que puede hacer con ella se establece BCE-windows-ancho para decidir el ancho de las ventanas del BCE son. El problema es esta secuencia:
- Marco aparece en la pantalla.
- BCE a activar se llama, según la escala BCE-ventanas de ancho. parámetros
- predeterminados-frame-alist entran en juego, se cambia el tamaño del marco.
El problema es que, debido a esta orden de la anchura de la ventana del BCE se establece antes de que el marco se cambia de tamaño, y luego no se escala.
Así que me gustaría correr BCE-dibujar-diseño (o, idealmente, simplemente desactivar BCE), pero tiene que suceder después de # 3. De lo contrario, una especie opción BCE-dinámica de ancho de escala también funcionaría.
Por lo que vale, bce-auto-activate no funciona, así que no puedo averiguar si eso resolverlo.
Solución
Parece que he encontrado una solución.
- Set-fix-BCE ventana de tamaño true.
- Cuando se carga el bastidor, bce-Activate se llama y las ventanas del BCE se escalan proporcionalmente al tamaño del marco.
- A continuación, default-frame-alist entra en acción y el marco se cambia de tamaño, pero las ventanas BCE han un tamaño fijo y no quedar reducido.
Muy hacker porque estás ajustar el ancho de acuerdo con el tamaño de fotogramas predeterminada que aparece en primer lugar, no el tamaño que realmente utiliza. Pero bueno.
Otros consejos
Estoy familiarizado con BCE, pero after-make-frame-functions
podría ser útil en la gestión de las funciones que desee (o ejecutar alguna función de enlace en el que desea hacer cosas especiales con el marco BCE).
after-make-frame-functions
es una lista de funciones que toman un argumento (el marco de nueva creación), y se ejecuta después de crear el marco. Esto no se aplica al marco inicial de Emacs (en el arranque), ya que su .emacs se lee después El bastidor está ya creado.