¿Cómo cambio entre ventanas rápidamente?
A menudo tengo varias ventanas abiertas y necesito cambiar entre ellas. En este momento, solía C-x o
llegar al que quiero. ¿Hay un flujo de trabajo más eficiente disponible para esto?
window
cycling
navigation
Sibi
fuente
fuente
Respuestas:
Obviamente prefiero ace-window para esto. Puede cambiar entre ventanas y marcos visibles. Está en MELPA, puedes instalarlo rápidamente. Lo único que queda por hacer es atarlo:
O tal vez use un acorde de tecla más corto, ya que cambiar ventanas es una tarea común:
Resumen de
ace-window
Es un reemplazo directo para
other-window
. A diferencia de este último, nunca tiene que llamarace-window
dos o más veces para seleccionar una ventana: selecciona la ventana que desea en una llamada (posiblemente en varios marcos).Además de cambiar ventanas,
ace-window
puede hacer más (eliminar o intercambiar ventanas, etc.), vea README .fuente
ace-window
y luego viswitch-window
que parece hacer más o menos lo mismo, excepto que las letras son más pronunciadas. Parece divertido que tengamos ambos paquetes.switch-window
hasta que meace-window
presenté a MELPA.ace-window
, tiene más personalización que otros paquetes, supongo. Aún así, uno podría ser de ayuda en el futuro es un enlace clave para una función que sería similar a la acción de intercambio inteligente, pero se come esa ventana, lo que da como resultado una ventana más grande en el punto y una ventana elegida de menor tamaño (el comido ventana hacia arriba). La relación debe determinarse en este caso como puede ser la mitad, un cuarto o un tercio.Una forma es usar
windmove
. Con sus combinaciones de teclas predeterminadas, permite cambiar a la ventana junto a la actualmente activa.Está construido en Emacs, por lo que no es necesario instalar nada; simplemente actívelo con la siguiente configuración mínima en su archivo init:
A continuación, puede cambiar a ventanas vecinas utilizando las siguientes teclas (donde la flecha se utiliza de forma intuitiva define la dirección en que se mueve):
S-<left>
,S-<right>
,S-<up>
,S-<down>
.Si prefiere usar otro modificador en lugar de shift, puede proporcionarlo como argumento para
windmove-default-keybindings
. Por ejemplo:o
Más información en Emacs Wiki .
fuente
(windmove-default-keybindings 'meta)
como se sugiere en EmacsWiki.Shift-arrow
) , pero cuando tienes un monitor grande con muchas divisiones, ese movimiento rápidamente se vuelve difícil de manejar. Sería más interesante enumerar de alguna manera ventanas / divisiones. Me gustaace-window
, pero con menos pulsaciones de teclas y un algoritmo obvio para averiguar de inmediato el número que desea.Puede vincularse
other-window
a una secuencia de teclas más fácil de escribir.Por ejemplo, he
C-.
unido aother-window
, yC-,
obligado a ir a la ventana anterior.Esto es especialmente útil para mover múltiples ventanas; una vez que mantienes presionado Control, solo tienes que presionar un solo botón para pasar a la siguiente ventana. Esto es mucho más fácil que tres pulsaciones de teclas por movimiento.
fuente
C-x o
paraother-window
es uno de los pocos competidores sólidos por el título de "peor atajo predeterminado de emacs". Mi solución (similar a zck) fue volver a vincularother window
a una secuencia de teclas (mucho más fácil): lo tengo vinculadoC-;
(y miCaps-Lock
se intercambia conCtrl
lo que todo lo que se necesita es un toque rápido de los meñiques). Por cierto, soy totalmente dependiente de ciertas características dehelm
yicicles
(es decir, no soy "anti-paquetes" ni nada); Solo creo que una solución simple funciona mejor aquí.M-o
paraother-window
. Algunos modos ya tienenM-o
de unión, en particulardiff-mode
,ggtag-mode
yibuffer-mode
. Debe desenlazarlo manualmente en cada mapa de modo.unbind-key
proporcionado porbind-key.el
es muy útil.M-o
también, y hanM-O
obligado aace-window
para cuando necesito la energía adicional.numeración de ventanas.
Asigno la tecla de acceso rápido ", 1", ", 2", ", 3" para cambiar la ventana específica (tenga en cuenta que uso el modo malvado)
además, muestro el número de ventana en la línea de modo en color ROSADO, subrayado.
Es una pista visual que nunca puedes ignorar,
Esa es la forma más rápida de cambiar de ventana.
consulte https://github.com/redguardtoo/emacs.d/blob/master/lisp/init-evil.el y https://github.com/redguardtoo/emacs.d/blob/master/lisp/init-modeline .el para mi configuración.
Sylvain Benner adoptó mi idea en los spacemacs, pero las combinaciones de teclas son diferentes . Entonces, si usa spacemacs, obtiene la solución más rápida de la caja.
fuente
window-number
conM-<num>
para cambiar rápidamente las ventanas en blanco y negro. Concepto similar a esteSin usar complementos adicionales, puede continuar usándolo
C-x o
con un prefijo opcional para omitir esa cantidad de ventanas. Por ejemplo:C-u 1 C-x o
irá a la siguiente ventana en el orden (es decir, lo que obtendría con simpleC-x o
),C-u 2 C-x o
pasa dos ventanas,C-u 3 C-x o
pasa tres ventanas, y así sucesivamente.Un extracto de la
other-window
cadena de documentación (la función llamada porC-x o
:fuente
Algunas personas pueden recordar el editor Brief (curiosamente producido por una compañía llamada Underware).
Tenía una buena forma de cambiar entre ventanas visibles. La flecha M movería el cursor a la ventana directamente en línea con la dirección de la tecla de flecha.
Por lo tanto, Me asignan los
winmove-left
,winmove-right
,winmove-up
ywinmove-down
funciones aM-left
,M-right
,M-up
yM-down
las teclas de la siguiente manera en mi archivo .emacs -Ahora puedo moverme con facilidad entre ventanas, independientemente de lo desordenada que tenga la configuración ... Y puede estar bastante abarrotada con el tamaño de las pantallas hoy en día ...
fuente
(windmove-default-keybindings 'meta)
!Si usa Icicles, entonces le
C-x o
permite seleccionar ventanas por nombre (o en bicicleta).Sin prefijo arg,
C-x o
es el mismo de siempre, aother-window
menos que el marco tenga solo una ventana, en cuyo caso lo esother-frame
.Con un prefijo arg,
C-x o
es un comando múltiple que le permite navegar entre ventanas o marcos por nombre (o en bicicleta). Navegar entre ventanas usa comandos múltiplesicicle-select-window
; navegando entre usos de marcosicicle-select-frame
.La navegación que se usa depende del prefijo arg:
Argumento de prefijo cero (p
C-0
. Ej. ): Si el marco seleccionado tiene varias ventanas, esto esicicle-select-window
, con ventanas en el mismo marco que los candidatos. De lo contrario (marco de ventana única), esto esicicle-select-frame
.C-u
: Si el marco seleccionado tiene múltiples ventanas, entonces esta esicicle-select-window
, con ventanas de todos los marcos visibles como candidatos. De lo contrario, esto esicicle-select-frame
.C-u C-u
:icicle-select-window
, con ventanas de todos los marcos como candidatos (incluidos los marcos iconificados u ocultos).Como siempre en Icicles , puede combinar (a) completar , escribir texto para reducir el conjunto de candidatos coincidentes (nombres de ventana o marco, en este caso), con (b) ciclismo (entre candidatos coincidentes).
fuente
Considere usar un acorde de tecla para saltar rápidamente entre ventanas. Lo encuentro mucho más rápido que alcanzar una tecla modificadora (y menos esfuerzo en mis manos también).
Mi elección de paquete para usar es
ace-window
, que le permite navegar por múltiples ventanas más fácil que soloother-window
.Obviamente para usar esto necesitas
key-chord
yace-window
, ambos están disponibles en melpa.fuente
ace-window
está haciendo el trabajo como en la respuesta de @ abo-abo. Me parece que, en este contexto, la combinación de teclas específica para usar tendría más sentido como un comentario que como una respuesta. Solo mis dos centavos.key-chord
permite enlazar combinaciones de teclas muy accesibles. El enlace de ejemplo dexo
es más rápido queC-x o
(profundidad de uno frente a dos). Esta respuesta podría reformularse para enfatizar que la respuesta es ortogonal a las otras respuestas sobre la selección de funciones (yace-window
es solo una de las muchas opciones que podrían vincularse de la manera descrita). ¡Mantenga esta respuesta como distinta!Algunas buenas respuestas aquí, también soy fanático de WinMove, pero lo asocio a C- porque org-mode usa M- para manipular encabezados
Donde se pone realmente bueno es si lo combinas con Hydra . Siguiendo los ejemplos en su wiki , creé mi propio monstruo:
Esto me permite cambiar ventanas, redimensionarlas, mover buffers de una ventana a otra, alternar buffers, eliminar buffers e incluso deshacer configuraciones de ventanas a través del modo ganador, y también integra el timón. Para salir de la hidra, simplemente presione la flecha o alguna otra tecla que no esté en la hidra. Puede encontrar las funciones de "movimiento de hidra" en los ejemplos de hidra. Lo mejor de la hidra es que no tengo que recordar todas esas combinaciones de teclas y es "modesta", así que una vez que esté en la hidra, todo estará disponible como una sola tecla. prensa.
fuente
(windmove-default-keybindings 'control)
.Si lo usa
evil-mode
, puede usar un prefijo numérico conC-w C-w
(evil-window-next
) para elegir la ventana que desee. Entonces:1 C-w C-w
selecciona la primera ventana en orden cíclico,3 C-w C-w
elige la tercera ventana en orden cíclico, y así sucesivamente.fuente
Ace Jump le permite navegar su puntero a todas las palabras en una pantalla, independientemente de en qué ventana o marco se encuentren, por lo que no es tan diferente de usar Ace Window o Switch Window.
Una ventaja podría ser que al saltar ventanas también puede colocar el puntero con cierta precisión.
Todavía lo encuentro un poco engorroso o distractor, y encuentro que estoy usando
windmove
más, porque es muy simple, pero aún así uso Ace Jump cuando he estado leyendo en otra ventana o marco y quiero moverme a un lugar allí.fuente
Como de costumbre, hay cientos de formas diferentes de lograr esto. Mi forma preferida es usar NumberedWindows . Luego configuro la siguiente combinación de teclas usando Super y las teclas 1-9.
Entro en un poco más de detalle sobre este tema exacto con una publicación reciente que puedes leer en Afternoon Coder .
fuente
También puede optar por usar switch-window como un reemplazo visual para
C-x o
fuente
switch-window
sobre todos los demás?