web-dev-qa-db-fra.com

Annuler la fenêtre fractionnée dans Vim

J'ai fendu mes fenêtres horizontalement. Maintenant, comment puis-je revenir en mode normal, c’est-à-dire qu’il n’est pas possible de diviser une fenêtre sans une fenêtre sans annuler toutes mes fenêtres ouvertes? J'ai 5 et je ne veux pas "quitter", je veux juste sortir de la fenêtre partagée. 

190
Sudeep

Presse Control+wpuis frappe q fermer chaque fenêtre à la fois.

Mise à jour: Pensez également à la réponse eckes qui pourrait vous être plus utile, impliquant :on (lire ci-dessous) si vous ne voulez pas le faire fenêtre par fenêtre.

263
Warren P

Pour fermer toutes les divisions, je place généralement le curseur dans la fenêtre qui doit être la sur - uniquement visible, puis faites :on qui fait de la fenêtre actuelle le sur la fenêtre - visible. Belle mnémonique à retenir.


Edit: :help :on m'a montré que ces commandes sont les mêmes:

  • :on
  • :only
  • CTRL-wCTRL-o
  • Et oui aussi CTRL-Wo a le même effet (comme Nathanrépond ).

Chacune de ces quatre ferme toutes les fenêtres sauf la fenêtre active.

242
eckes

pour fermer toutes les fenêtres sauf celle actuelle, utilisez:

CTRL+wo

C'est d'abord CTRL+w et alors o.

53
Nathan Fellman

Les options ZZ et ZQ permettent de fermer la fenêtre en cours et enregistreront les modifications apportées à la mémoire tampon affichée, et non celles enregistrées. 

26
Benoit

La commande: masquer masquera la fenêtre actuellement active. Je pense que c'est la fonctionnalité que vous recherchez.

Pour naviguer entre les fenêtres, tapez Ctrl + w suivi d'une touche de navigation (touches h, j, k, l ou fléchées)

Pour plus d'informations, lancez :help window et :help hide dans vim.

6
cledoux

Comme les autres l’ont dit avant, il faut appuyer sur ctrl+w et alors o. Ceci "maximisera" la fenêtre courante en fermant les autres. Si vous souhaitez pouvoir "démaxiser", il existe un plugin appelé ZoomWin pour cela. Sinon, vous devrez recréer la configuration de la fenêtre à partir de zéro.

1
psyho

Je l'ai trouvé ctrl + w à la fenêtre que vous voulez fermer, alors faites juste :q. Cela fonctionne pour moi.

1
dmarges

Je comprends bien votre intention, j’utilise exclusivement les tampons et, occasionnellement, je le divise si nécessaire.

ci-dessous est extrait de mon .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!

Ce qui convient parfaitement à mon flux de travail

Si q a été pressé

  • masque la fenêtre actuelle si plusieurs fenêtres sont ouvertes, sinon essayez de quitter vim.

si qo a été pressé, 

  • fermez toutes les autres fenêtres, aucun effet s'il n'y a qu'une seule fenêtre.

Bien sûr, vous pouvez envelopper cette partie en désordre dans une fonction , par exemple

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>

Sidenote : Je remappe q, puisque je n’utilise pas de macro pour l’édition, mais plutôt :s, :g, :v et une commande de traitement de texte externe si nécessaire, par exemple, :'{,'}!awk 'some_programm', ou utilise :norm! normal-command-here.

1
qeatzy

A partir de :help opening-window (recherche "Fermer une fenêtre" - /Closing a window)

  • :q[uit] ferme la fenêtre en cours et le tampon. Si c'est la dernière fenêtre, il quittera également vim
  • :bd[elete] décharger le tampon actuel et fermer la fenêtre actuelle
  • :qa[all] ou :quita[ll] va fermer tous les tampons et toutes les fenêtres et quitter vim (:qa! pour forcer sans enregistrer les modifications)
  • :clo[se] ferme la fenêtre en cours mais laisse la mémoire tampon ouverte. S'il n'y a qu'une seule fenêtre, cette commande échoue
  • :hid[e] masque le tampon dans la fenêtre en cours (pour en savoir plus, allez à :help hidden)
  • :on[ly] ferme toutes les autres fenêtres mais laisse tous les tampons ouverts
0
chaptuck

Ok je viens de détacher et rattacher à la session d'écran et je suis de nouveau à l'écran normal

0
Sudeep