Escenario: Tengo varias (más de 2) ventanas abiertas. Trabajo activamente con dos de ellos. ¿Cómo salto mejor de una ventana a otra, y de regreso, con un comando?
Yo uso ace-window; es genial, pero no quiero presionar el número de la ventana cada vez. Sé sobre next-window
/ prev-window
, pero estos son dos comandos diferentes.
Lo que estoy buscando es algo que recuerde cuál era la ventana anterior cuando seleccioné otra ventana, y vuelve a ella. Invocado repetidamente, cambiaría entre las dos últimas ventanas, Alt- Tab-style.
Donde miro
fn
más una de las teclas de flecha para ir en cualquier dirección, incluso dentro y fuera del minibúfer (si está activo); vea la biblioteca incorporadawindmove
.Respuestas:
Una forma de escribir su propio comando es usar la
get-mru-window
función integrada.Por ejemplo:
Esto busca la ventana utilizada más recientemente en el marco actual que no es la ventana seleccionada actualmente.
Aquí hay una variación que funciona en los marcos visibles:
Como se menciona en los comentarios, aquí hay una variación que funciona cuando solo hay una ventana (cambiar al búfer más reciente):
fuente
get-mru-window
.mode-line-other-buffer
. De esa manera, tengo una tecla que se mueve de un lado a otro entre dos buffers en cualquier configuración de ventana.Si ya está usando
ace-window
, puede usar el comandoaw-flip-window
para alternar entre dos ventanas. Por defecto, esto está vinculado an
la ventana aceaw-dispatch-alist
.Eso significa que puede invocar ace-window y presionar en
n
lugar de un número de ventana para volver a la ventana anterior. También puede vincularaw-flip-window
a alguna otra clave.Tenga en cuenta que esto solo volverá a una ventana que previamente fue seleccionada por ace-window. Si a menudo cambia ventanas con otros comandos, es posible que desee una solución más general.
fuente
Aquí hay un comando simple, ligeramente probado, que lo cambiará a la ventana visitada más recientemente:
fuente
next-window
oother-window
, el cambio no se recogerá en larecent-window
variable. No hay un gancho obvio para usar, por lo que arreglar esta parte puede implicar definir consejos para muchas otras funciones.buffer-list-update-hook
, que se llama cuando cambia la ventana activa (despuésselect-window
). Ese gancho se llama en otros casos, pero podría usarse para realizar un seguimiento de la última ventana.