2010-10-01 11 views
10

En Vim puedo mover una división. Por ejemplo, si mi ventana se dividió en dos horizontalmente, con la división superior dividida verticalmente (3 divisiones en total) pude mover la división superior derecha hacia la derecha para convertirla en una división vertical ocupando todo el espacio vertical.¿Cómo reorganizo un panel dividido en Emacs?

¿Es posible este tipo de reorganización?

Actualización: Sé que el cambio de tamaño es posible, pero estoy intentando avanzar. Me da la sensación de que Emacs no lo admite.

Respuesta

3

No, no de forma predeterminada. Con lo que tiene que jugar es básicamente C-x 0, C-x 1, etc. Busque en el Emacs Wiki las extensiones que pueden o no hacer lo que está buscando.

+0

Esto era exactamente lo que necesitaba: había usado C-x 3 para obtener una ventana vertical dividida, luego el mouse hizo clic en el derecho y se abrió un caparazón. Pero de alguna manera los contenidos de la ventana fueron intercambiados. C-x 0 cierra una de las ventanas SIN cerrar el búfer asociado. Así que pude recrear la división, hacer clic en la ventana que quería, luego abrir el buffer que quería en esa ventana. – Purplejacket

4

usted este interesado por C-x+ cuando se tiene más de 2 ventanas. Reordena igualmente las ventanas en el marco. Es conveniente, por ejemplo, cuando hace dos C-x en una fila y quiere que las ventanas ocupen el mismo espacio en el marco.

2

creo que cambiar el tamaño de la ventana de comandos están integradas en window.el, desde emacswiki las funciones que desee documentados son:

shrink-window-horizontally ; C-x { 
enlarge-window-horizontally ; C-x } 
enlarge-window    ; C-x^
shrink-window    ; not bound on my system 

Los comentarios son lo que están obligados a en mi sistema, pero no lo hacen Sé si lo hice yo mismo.

Todos ellos toman un argumento de prefijo, el número de líneas para agrandar/reducir. Los dos últimos predeterminados a vertical.

+0

Ja no busca cambiar el tamaño, pero para reorganizar – MDCore

+0

Oh lo siento, leí mal la pregunta. – quodlibetor

3

FWIW, si está ejecutando dentro de una GUI, entonces puede volver a organizar con precisión los tamaños de ventana rápida y fácilmente con el mouse. Esto no es exactamente lo mismo que está pidiendo, pero puede ser una alternativa útil en algunos casos.

Puede hacer clic en cualquier área no 'activa' de la línea de modo (como el nombre del búfer) y luego arrastrarla hacia arriba o hacia abajo.

Arrastrar de lado a lado es más complicado. Debe hacer clic en el borde exacto entre las dos líneas de modo, y luego puede arrastrar hacia la izquierda/derecha.

Para su ejemplo específico, no creo que sea compatible. AFAIK solo puede reorganizar las divisiones de ventana dentro de su ventana 'principal' existente (la división superior en este ejemplo). Para hacer que la ventana superior derecha llene el espacio vertical, puede eliminar la ventana inferior con C-x 0, o usar C-x 1 para eliminar todas las demás ventanas y luego volver a dividirlas de la manera deseada.

(tangencial, a menudo he pensado que una biblioteca personalizada a las divisiones de la ventana 'rota' sería una cosa agradable a tener.)

+1

¡Esa biblioteca personalizada es exactamente lo que estoy buscando! – MDCore

+0

Veo que http://www.emacswiki.org/emacs/TransposeFrame hace exactamente eso y más. Excelente. – phils

+1

O como menciona esa página, si tiene instalado nxhtml, ya tiene 'M-x winsav-rotate' disponible. – phils

0

Por lo que yo sé no se puede crear una nueva ventana que corre a lo largo o el ancho de la pantalla desde una ventana ya dividida en esa dirección. Los búferes permanecen abiertos si cierra las ventanas para que pueda eliminar ventanas y luego dividirlas en la configuración que desee. Luego, cambie qué buffer se muestra en la ventana en la que se encuentra presionando C-x flecha izquierda o flecha derecha.

Debo añadir que esta respuesta se refiere a emacs "vainilla", es probable que haya una manera de hacer lo que el OP le pregunta si realmente quiere. Es emacs después de todo.

Cuestiones relacionadas