En emacs, más a menudo de lo que me gusta, termino con 4 ventanas o más.
Usaré ese ejemplo:
+--------|-----------+
| | |
| 1 | 2 |
| | |
+--------+-----------+
| 3 | 4 |
| +-----------+
| | 5 |
+--------+-----------+
Muchas funciones pueden actuar other-window
(generalmente la misma ventana señalada por C-x o
). Especialmente útiles son scroll-other-window
. Sin embargo, cuando se abren 4 o más ventanas, other window
es poco probable que sea la que quiero.
¿Hay una manera fácil de administrar la configuración other-window
sin cambiar el diseño de la ventana / búfer? Por supuesto, es factible usando un montón de C-x 4 b
y, C-b
pero no quiero cambiar el diseño. Por ejemplo:
- si edita en la ventana 4 en la imagen de arriba, ¿hay una manera fácil de configurar
C-M-v
para desplazar la ventana 1 ? - O simplemente, suponga que el foco en la ventana 3 , ¿cómo establecer
other-window
que apunte a la ventana 2 ?
M-1 M-2 ..
a seleccionar la ventana número 1, 2 usando elwindow-number
paqueteSegún una revisión rápida de la fuente
other-window
, parece que en realidad depende de la ventana devuelta pornext-window
, que se define en c. Lamentablementescroll-other-window
también se define en c, y presumiblemente llama a la siguiente ventana desde allí. No creo que sea fácil anular eso.Sin embargo,
switch-to-buffer-other-window
parece usarpop-to-buffer
, por lo que puede tener algo de suerte allí.fuente
No hay una manera fácil de manipular la lista de ventanas, por lo que el resultado devuelto
other-window
es más o menos fijo. Esto no es algo malo en sí mismo, ya que permite la coherencia al navegar por Windows. Con respecto a los dos escenarios que describió, con algunos elisp o macros puede adaptarse a su flujo de trabajo.Puede usar un fragmento simple como el siguiente para usar
other-window
la cantidad adecuada de veces, desplazarse hacia abajo y volver a la ventana original.Puede pasar un argumento de prefijo para especificar qué ventana desplazarse. Como puede deducir, utiliza el mecanismo incorporado
other-window
para omitir laarg
cantidad de ventanas antes de desplazarse. Elsave-selected-window
enfoque asegura que volverá a la ventana original. La documentación deother-window
puede proporcionar más información sobre cómo modificar este fragmento para adaptarlo a su comportamiento.Nuevamente use un
prefix-arg
como enC-3 C-x o
cuando llameother-window
. El número real que se proporcionará variará según el orden en que los divida y no cambiará mientras no cree nuevas ventanas. Alternativamente, puede usar paquetes convenientes comowindow-number
oace-window
desde MELPA para cambiar rápidamente las ventanas seleccionadas.fuente
<f7> n
para desplazarse por la enésima ventana. Cree enlaces de teclas temporales con macros de teclado.