Comment modifier la largeur et la hauteur du fractionnement actuel?


112

Je travaille sur des tampons de scission (en utilisant ^ w + v, ^ w + s), mais je souhaite parfois élargir une scission actuelle ou modifier sa hauteur. Comment puis-je y arriver?

Réponses:


159

Plusieurs commandes de fenêtre vous permettent de le faire:

  • Ctrl+W +/-: augmenter / diminuer la hauteur (ex. 20<C-w>+)
  • Ctrl+W >/<: augmenter / diminuer la largeur (ex. 30<C-w><)
  • Ctrl+W _: régler la hauteur (ex. 50<C-w>_)
  • Ctrl+W |: définir la largeur (ex. 50<C-w>|)
  • Ctrl+W =: égaliser la largeur et la hauteur de toutes les fenêtres

Voir également: :help CTRL-W


19
Il convient également de noter que les deux premières options peuvent prendre un nombre pour redimensionner de plusieurs lignes / colonnes à la fois.
Rich

4
Il convient également de noter que les 3ème et 4ème options ne peuvent pas compter pour redimensionner à la hauteur / largeur maximale.
Michael

2
Sur mon système, c'est :help CTRL-Wet pas:help CTRL_W
Alexej Magura

sous windows, Cygwin, vim: quand vous vimdiff -o bigfile1.bash bigfile2.bash:: ctrl-w =ouvre une 3ème fenêtre MiniBufExplorer en haut (et que les 3 fenêtres ont maintenant la même taille), et fermez-la pour que la fenêtre du premier fichier .bash soit 2 fois plus grande que le 2ème fichier .bash fenêtre. La même opération avec 2 fichiers .vim donne les mêmes résultats. :( Idem avecvim -o
Olivier Dulac

Demander un raccourci pour les deux premières options vi.stackexchange.com/questions/16786/…
KcFnMi

44

Vous pouvez également utiliser les resizecommandes:

  • :resize [+-]N - redimensionner une division horizontale, en augmentant ou en diminuant la hauteur de N caractères.
  • :vertical resize [+-]N - redimensionner une division verticale, en augmentant ou en diminuant la hauteur de N caractères.
  • :resize N - redimensionne une division horizontale en définissant la hauteur sur N caractères.
  • :vertical resize N - redimensionne une division verticale, en définissant la largeur sur N caractères.

Celles-ci sont équivalentes aux Ctrlwcommandes. Voir :help window-resize.



30

C'est l'une des rares raisons pour lesquelles j'aime utiliser le mode souris de vim.

Si vous utilisez la version graphique ou si votre terminal prend en charge l’envoi d’événements glisser (tels que xterm ou rxvt-unicode), vous pouvez cliquer sur la ligne de division et faire glisser pour redimensionner la fenêtre exactement où vous le souhaitez, sans trop de travail approximatif en utilisant la touche ctrl. -w plus, moins, moins, plus grandes combinaisons.

Dans les versions de terminal, vous devez définir le mode souris correctement pour que cela fonctionne

:set mouse=n

(J'utilise 'n', mais 'a' fonctionne aussi)

et vous devez définir le type de souris tty

:set ttymouse=xterm2

Beaucoup de gens disent qu’on perd beaucoup de temps avec la souris (principalement à cause du temps nécessaire pour déplacer la main du clavier vers la souris et le dos), mais j’ai constaté que, dans ce cas, le temps gagné par avoir un retour immédiat tout en ajustant la taille de la fenêtre et la rapidité avec le redimensionnement (déplacez la souris au lieu de taper une autre séquence de touches) l'emporte sur le délai de la main.


4
Je ne pouvais pas être plus d'accord, j'ai trouvé que dans Gnome-terminal :set mouse=nest suffisant, mais pour permettre quand à l'intérieur de tmux :set ttymouse=xterm2est nécessaire.
the_velour_fog

1
Absolument vrai, j'aime le clavier, mais ce genre de choses est mieux avec la souris.
Calbertts

Wow, merci d'avoir porté cela à mon attention!
Charlie Gorichanaz

Totalement d'accord avec "mais je trouve que, dans ce cas, le gain de temps résultant de la réaction immédiate lors du réglage de la taille de la fenêtre et de la rapidité du redimensionnement (continuez à déplacer la souris au lieu de saisir une autre séquence de touches) l'emporte sur le délai de la main. " .
Nawaz

5

Semble personne n'a été mentionné z{nr}<CR>.

Si vous :h ^w_voyez alors z{nr}<CR>juste en dessous, qui ont le même effet que CTRL-W_.

Si vous n'avez pas besoin z=de vérification orthographique et ajouté ci-dessous à .vimrc,

" vertical resize, z0<CR> minimize, z= equalize, z99<CR> maximize.
nnoremap z= <C-w>=

Puis pour changer la hauteur de la fenêtre:

  • z0<CR> minimiser la hauteur de la fenêtre en cours
  • z99<CR> pour maximiser la hauteur de la fenêtre en cours
  • z= pour les rendre tous égaux

2
cette utilisation de zest un peu peu intuitive. Je pense que nous devrions nous en tenir aux C-Wcartographies. C'est bien de savoir ce qui se passe cependant.
Klaus

5

Redimensionner se scinde plus rapidement :http://vim.wikia.com/wiki/Resize_splits_more_quickly

Vous pouvez utiliser la :resizecommande ou son raccourci :respour changer la hauteur de la fenêtre. Pour modifier la hauteur à 60 lignes, utilisez: :resize 60

Vous pouvez également modifier la hauteur par incréments. Pour changer la hauteur par incréments de 5, utilisez: :res +5 :res -5

Vous pouvez utiliser: redimensionner verticalement pour changer la largeur de la fenêtre en cours. Pour changer la largeur à 80 colonnes, utilisez: :vertical resize 80

Vous pouvez également modifier la largeur par incréments. Pour changer la largeur par incréments de 5, utilisez: :vertical resize +5 :vertical resize -5


Il est très peu probable Resize splits more quicklyque cela se produise, à moins que ces commandes ne soient liées à des combinaisons de touches, ce qui a été fait en dehors de la boîte
klaus

Ne pas entièrement d'accord avec la déclaration d'Enan. J'aime cette réponse à mon humble avis
artisanat

0

Pour une raison quelconque (probablement un plugin), la norme C-w >(etc.) ne fonctionnait pas dans mon répertoire ~/.vimrc.

Ces .vimrcajouts ont fonctionné ( Ctrl-Shift-Left... où Left | Right= touches fléchées gauche et droite, respectivement.

" noremap <silent> <C-S-Left> :vertical resize +5<CR>
" noremap <silent> <C-S-Right> :vertical resize -5<CR>
noremap <silent> <C-S-Left> :vertical resize +1<CR>
noremap <silent> <C-S-Right> :vertical resize -1<CR>
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.