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

fnmá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-windowfunció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-windowpara alternar entre dos ventanas. Por defecto, esto está vinculado anla ventana aceaw-dispatch-alist.Eso significa que puede invocar ace-window y presionar en
nlugar de un número de ventana para volver a la ventana anterior. También puede vincularaw-flip-windowa 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-windowoother-window, el cambio no se recogerá en larecent-windowvariable. 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.