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.
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.
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:
Chacune de ces quatre ferme toutes les fenêtres sauf la fenêtre active.
pour fermer toutes les fenêtres sauf celle actuelle, utilisez:
CTRL+w, o
C'est d'abord CTRL+w et alors o.
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.
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.
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.
Je l'ai trouvé ctrl + w à la fenêtre que vous voulez fermer, alors faites juste :q. Cela fonctionne pour moi.
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
.
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 ouvertsOk je viens de détacher et rattacher à la session d'écran et je suis de nouveau à l'écran normal