2011-01-26 12 views
155

He dividido mis ventanas horizontalmente. Ahora, ¿cómo puedo volver al modo normal, es decir, sin ventana dividida solo una ventana sin cancelar todas mis ventanas abiertas? Tengo 5 y no quiero "salir", solo quiero salir de la ventana dividida.Cancelar ventana dividida en Vim

+6

¿Alguna posibilidad de que usted pueda aceptar la respuesta de eckes? Es mucho más útil que el actualmente aceptado ... –

Respuesta

210

Prensa control + w , después haga clic en q para cerrar cada ventana a la vez.

actualización: También consideran Eckes Respuesta que puede ser más útil para usted, con la participación :on (leer más abajo) si no desea hacerlo una ventana a la vez.

+0

Si tiene 5 splitq abiertos, no estoy seguro de que su solución realmente lo ayude. –

+9

Estoy de acuerdo, pero el OP no contestó eckes, y no puedo cambiarlo yo mismo. –

+4

Estoy bastante seguro de que esta es la respuesta correcta. Esto lo hizo por mí y si miras la pregunta de Op, él no quiso cerrar sus otras ventanas abiertas, solo la recientemente dividida. – Zak

0

bien acabo desapegado y vuelva a conectar a la sesión de pantalla y estoy de vuelta a la pantalla normal que quería

5

El comando: ocultar ocultará la ventana activa actualmente. Creo que esta es la funcionalidad que estás buscando.

Con el fin de navegar entre las ventanas escriba Ctrl + w seguido de una tecla de navegación (h, j, k, l, o teclas de flecha)

Para obtener más información de Ejecución :help window y :help hide en vim.

+0

Esto es genial. Chrome (con el complemento ssh) intercepta como "cerrar pestaña" desactivando efectivamente todos los comandos de la ventana de vim . Tener una alternativa es útil. – rein

19

Dos alternativas para cerrar la ventana actual son ZZ y ZQ, que, respectivamente, guardarán y no guardarán los cambios en el búfer mostrado.

+4

Este es seguramente el "modo vim", crtl + w o parece tan emacs. –

47

para cerrar todas las ventanas pero la corriente de un solo uso:

CTRL + w, o

Es decir, primero CTRL + w y luego o.

+1

También me pregunto si hay una manera de deshacer un 'CTRL + W o' escrito accidentalmente. – Paolo

204

Para cerrar todas las divisiones, por lo general coloca el cursor en la ventana que será el en uno-mente visible y luego hacer :on que hace que la ventana actual del en ventana -ly visible. Buen recuerdo para recordar.


Editar::help :on me mostró que estos comandos son los mismos:

  • :on
  • :only
  • CTRL-WCtrl-O
  • Y sí al por lo que CTRL-Wo tiene el mismo efecto (como Nathananswered).

Cada uno de estos cuatro cierra todas las ventanas excepto la activa.

+0

'^ w_o' está en los documentos. Está justo encima del resto. –

+6

+1 Si la otra ventana contiene cambios involuntarios, ': on' responderá con' E445: Otra ventana contiene cambios' y no cerrará la otra ventana. Por ejemplo, normalmente creo una nueva ventana y leo en ella un archivo del que me gustaría quitar. En este caso, Vim considera que la otra ventana tiene cambios no escritos. En tal caso, use ': on!' Para forzar un cierre. – Sabuncu

1

Al igual que los otros dijeron antes de la manera de hacer esto es presionar ctrl +w y luego o. Esto "maximizará" la ventana actual, mientras que cierra las otras. Si desea poder "eliminarla", hay un complemento llamado ZoomWin para eso. De lo contrario, tendrías que volver a crear la configuración de la ventana desde cero.

0

Encontré ese ctrl-w en la ventana que desea cerrar, luego solo haga lo siguiente: q Esto funciona para mí.

+0

Esta es una respuesta duplicada, duplicado de algo que ha estado ahí por más de 3 años. –

1

Entiendo bien tu intención, uso los buffers exclusivamente también, y de vez en cuando me divido si es necesario.

a continuación es extracto de mi .vimrc

" disable macro, since not used in 90+% use cases 
map q <Nop> 
" q, close/hide current window, or quit vim if no other window 
nnoremap q :if winnr('$') > 1 \|hide\|else\|silent! exec 'q'\|endif<CR> 
" qo, close all other window -- 'o' stands for 'only' 
nnoremap qo :only<CR> 
set hidden 
set timeout 
set timeoutlen=200 " let vim wait less for your typing! 

que se ajusta a mi flujo de trabajo bastante bien

Si q se ha pulsado

  • ocultar la ventana actual si varias ventanas abiertas, de lo Intenta salir de vim.

si se ha pulsado qo,

  • cierre todas las otras ventanas, no afecta sólo una ventana.

Por supuesto, se puede envoltura que los engorrosos parte en una función, por ejemplo

func! Hide_cur_window_or_quit_vim() 
    if winnr('$') > 1 
     hide 
    else 
     silent! exec 'q' 
    endif 
endfunc 
nnoremap q :call Hide_cur_window_or_quit_vim()<CR> 

Nota al margen: remap q, ya que no utiliza macro para su edición, en vez use :s, :g, :v, y comando de procesamiento de texto externo si es necesario, por ejemplo, :'{,'}!awk 'some_programm', o use :norm! normal-command-here.

Cuestiones relacionadas