En la función "shell", esta línea muestra el buffer del shell y casi siempre su nuevo shell abierto en un marco aleatorio. Y tengo que cambiar los tampones, es molesto.
...
(pop-to-buffer buffer)
...
En documentos dice:
Si esa ventana está en un marco gráfico diferente, a ese marco se le dará foco de entrada si es posible.
No entiendo cómo puedo mostrar el búfer en el marco de destino, no soy lo suficientemente bueno en elisp. ¿Como puedo hacer eso? Gracias si alguien puede ayudar.
Respuestas:
Supongo que el póster original significa apuntar a la ventana seleccionada actualmente en el mismo marco. En el caso de que el póster original desee apuntar a una ventana específica en un marco diferente, consulte este hilo relacionado para ver un ejemplo complejo: /programming/18346785/how-to-intercept-a-file- antes de que se abra y decida qué marco
Copié la función incorporada
shell
y creé una nueva llamadashell-get-buffer-create
, que usa enwith-current-buffer ...
lugar depop-to-buffer
. Esta nueva función genera o localiza el*shell*
búfer sin seleccionarlo en ninguna ventana.Para mostrar el
*shell*
búfer en la ventana seleccionada actualmente, use:o
o
Creé una función personalizada llamada
my-display-buffer
que se puede mostrar en cuatro direcciones: izquierda, derecha, arriba o abajo. Hay tres posibilidades: (1) Si una ventana en el marco ya muestra el búfer de destino, simplemente reutilice la misma ventana. (2) Si ya hay una ventana en la dirección especificada en relación con la ventana seleccionada, muestre el búfer de destino en dicha ventana. (3) Si no hay una ventana en la dirección especificada, cree una en esa dirección y muestre el búfer de destino en dicha ventana.Uso de muestra :
o
o
o
El código :
Y, aquí hay un
eshell-get-buffer-create
que funciona igual que el anterior ...fuente
No es una respuesta directa a su pregunta, pero tal vez esta sea una solución para usted.
Para instalar el paquete shell-pop de melpa o melpa-stable. Luego evalúe (para probar en
*scratch*
viaC-x C-e
, más adelante en su.emacs
)Esto abre un shell en la parte inferior de su marco, en este caso al presionar ctrl-meta-ret. Repetir la secuencia del teclado vuelve a donde estabas.
Ver https://github.com/kyagi/shell-pop-el para más detalles.
fuente