¿Cómo puedo maximizar una ventana dividida?


110

Invocando :helpen Vim, obtuve la página del manual de ayuda con la ventana dividida. Quiero maximizar la ventana del manual de ayuda y cerrar la otra ventana.

¿Cómo puedo hacer esto? ¿Cuál es el comando Vim para hacer esto?

Respuestas:


88

Con : ayuda [tema] abres un tema que te interesa.
Ctrl-Wo minimizará las otras ventanas (dejando solo la ventana de ayuda abierta / maximizada).
(Ctrl-Wo significa mantener presionada la tecla Ctrl, presionar W y luego o)


39
o,: solo hará el trabajo.
shbly

14
Desde el archivo de edición, ¿cómo puedo volver al manual de ayuda después de hacer CTRL + W o?
shbly

3
@guru: C-w, ^, :buf OtherFile.txt, :sbuf Otherfile.txtetc (ver ayuda para wincmd, switchbufpara más detalles). La cosa es que mi funy (en mi humilde opinión) correcta respuesta no había sido dado todavía ...
sehe

2
@ldigas: esa es una opinión (sorprendente). A menos que cite una fuente confiable, lo mantendré como su preferencia personal, de verdad. Por lo general, no los estoy usando, pero recientemente descubrí que los estoy usando para cosas como esta (maximizando un búfer lateral temporalmente; haciendo cosas poderosas como tener múltiples diferencias disjuntas lado a lado en una sola sesión vim). Las pestañas también son un milagro de usabilidad con gvim --remote. Sin se guioptions=agimembargo, siempre lo uso porque prefiero la representación de pestañas similar a la de una consola.
sehe

23
esto cerrará otras ventanas, y si tiene una o más ventanas en las que ha realizado cambios y no los ha guardado, entonces esto no funcionará; también creo que la pregunta es sobre maximizar la ventana para que funcione durante un corto tiempo en ese estado y luego más adelante volver al estado anterior: al cerrar todas las ventanas, tendrá que usar su archivo de sesión o abrir manualmente todas las demás ventanas para volver
serup

133

Puede emplear Ctrl+WT( eso es una mayúsculaT ) para mover cualquier ventana abierta a su propia pestaña.

Como lo mencionaron otros Ctrl+W_/ Ctrl+W|para maximizar dentro del diseño actual de la pestaña / ventana (respetando la configuración mínima de altura / ancho para varias otras ventanas).

( Ctrl+W=cambia el tamaño de todas las ventanas al mismo tamaño, respetando la configuración mínima de alto / ancho)

Editar al comentario

  1. iniciar vim (p gvim /tmp/test.cpp. ej. )
  2. invocar ayuda :help various-motions: abre una ventana dividida
  3. mover la ayuda a una pestaña separada maximizada: C-wT
  4. disfruta leyendo el excelente manual :)
  5. mueva la ayuda de nuevo a la pestaña original:

    mAZZ<C-w>S`A
    
    • mA: establece la marca global A
    • ZZ: cerrar el búfer / pestaña de ayuda
    • C-wS: ventana original dividida
    • `A: saltar a la marca guardada A

Puede evitar el uso de una marca para búferes normales (que no son de ayuda). Hazme saber si estas interesado.


4
Después de obtener la pestaña con CTRL + WT, ¿cómo puedo volver a las ventanas divididas originales?
shbly

2
@guru: simplemente cambie de pestaña como siempre (use Ctrl-PgUp, Ctrl-PgDowno :tabnext, :tabprev). Para cerrar el nuevo (por ejemplo, ayuda) ficha, uso ZZ, Ctrl-W, C, :q, :clo, :tabcloseo cualquier otra forma que por lo general cerca de las ventanas / pestañas
sehe

1
No, esa no era la cuestión. Suponga que tiene dos pestañas, ahora no quiere pestañas, quiere dos búferes como ventanas divididas. ¿Hay algún comando para hacer esto?
shbly

Edición de pregunta con procedimiento general. ( Me gustaría añadir que el tono de sus comentarios puede venir a través de bastante desagradable en el lenguaje escrito,. "No, that was not the question"Puede sonar como una reprimenda Estoy seguro de que no me refiero a mal. )
sehe

@guru: la respuesta está actualizada. Fue un poco más complicado de lo esperado, ya que los búferes de ayuda son especiales (y no se pueden usar :sbufcomo yo prefiero normalmente). Espero que esto ayude
sehe

53

Puede expandir una ventana a su tamaño máximo usando Ctrl+W_(subrayado). El tamaño final de la ventana expandida estará limitado por el valor de la winminheightopción. Cuando cierra la ventana de ayuda, sus ventanas anteriores se restaurarán a sus tamaños anteriores.


19
Ctrl+W o cierra las otras ventanas, por lo que se han ido. Por eso utilizo Ctrl+W _.
Greg Hewgill

2
¿Cómo puedo recuperar las dos ventanas divididas originales con el archivo de edición y con el manual de ayuda?
shbly

3
El Ctrl+W =comando cambia el tamaño de las ventanas para que todas tengan aproximadamente el mismo tamaño.
Greg Hewgill

14
Para divisiones verticales, querrá usar Ctrl+W |.
Achal Dave

2
para cualquier alma perdida que ocurra en este hilo ... para volver a las vistas divididas, use ctrl+w = // esto hace que todas las ventanas tengan el mismo tamaño
duggi

19

Prefiero usar pestañas para eso. Utilizar

:tabedit %

para abrir un archivo maximizado en una nueva pestaña, una vez que haya terminado, vuelva a la configuración anterior con todas las ventanas usando

:tabclose

Encuentro que esta es la solución ideal ya que funciona junto con :cwel complemento Tagbar. Tomado de: vim.wikia


13

Me gusta usar 'M' para maximizar y 'm' para minimizar.

No se verá muy bien, ya que encogerá todas las demás ventanas abiertas que están en el mismo búfer, pero me pareció más útil cuando se trata de pestañas. Entonces, por ejemplo, en lugar de abrir una nueva pestaña para ese archivo y luego tener que cerrarlo después de que haya terminado con él o quiera minimizarlo.

nnoremap <C-W>M <C-W>\| <C-W>_
nnoremap <C-W>m <C-W>=

La razón de nnoremap es que no me importa el mapeo recursivo, pero solo el mapa también debería funcionar.


1
Si usa nnoremap <C-W>M <C-W>\|<C-W>_(sin el espacio después |), entonces el cursor no se moverá en 1 en cada maximización.
rsanden

1
Me gusta esto usando barra invertida ( nnoremap <C-W>\ <C-W>\|<C-W>_). Se siente natural con los enlaces por omisión |, _y =.
rsanden

6

Puede obtener la ventana de ayuda en tamaño completo sin cerrar / cambiar el tamaño de ninguna otra ventana utilizando

tab help {topic}

Esto abrirá la ventana de ayuda en una nueva pestaña, otras ventanas se dejarán como están (realmente se cambiará el tamaño para que se pueda mostrar la línea de tabulación, pero esta es solo una línea adicional arriba). Puede cerrar la ayuda como de costumbre: al menos :bw<CR>y <C-w>ctrabajar para mí cerrando una nueva pestaña también.




2

Para obtener sólo la ayuda arriba y cierre la otra ventana, haga lo siguiente: :helpCTRL-WCTRL-W:close. Entonces tendrás solo la ayuda.


1

en tu .vimrc, solo coloca

nmap - :res<CR>:vertical res<CR>$

Cuando desee maximizar la ventana actual, simplemente presione - en el modo de comando. Presione = cuando desee restaurar el último estado de varias ventanas


2
Agradable pero = no restaura el 'último estado'.
Majkinetor

1

De alguna manera, el complemento ZoomWin no funcionó en absoluto para mí, ahora veo que hay otros complementos, pero ya escribí esto y me da el efecto exacto que quería (con una pequeña peculiaridad que se detalla a continuación) :

function! ToggleZoom(zoom)
  if exists("t:restore_zoom") && (a:zoom == v:true || t:restore_zoom.win != winnr())
      exec t:restore_zoom.cmd
      unlet t:restore_zoom
  elseif a:zoom
      let t:restore_zoom = { 'win': winnr(), 'cmd': winrestcmd() }
      exec "normal \<C-W>\|\<C-W>_"
  endif
endfunction

augroup restorezoom
    au WinEnter * silent! :call ToggleZoom(v:false)
augroup END
nnoremap <silent> <Leader>+ :call ToggleZoom(v:true)<CR>

Use la tecla asignada (Líder y + en mi caso) para alternar entre diseño maximizado / anterior. Si cambia a otra división en la misma pestaña, la maximización se desactiva.

Si cambia las pestañas, la división permanece maximizada, aunque de alguna manera ya no cubrirá el ancho completo completo, con las ventanas minimizadas de ancho recuperando unas 4 columnas o algo así. De todos modos, funciona aceptablemente para mí incluso con esa pequeña peculiaridad.

editar: de alguna manera funciona bien ahora, debe haberse estropeado de alguna manera antes.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.