Vim: Déplacer la fenêtre vers la gauche / droite?

216

Dans Vim, est-il possible de «déplacer» une fenêtre vers la gauche ou la droite? Par exemple, similaire à <c-w> rou <c-w> x, mais gauche / droite au lieu de haut / bas?

Par exemple, si j'ai cette disposition:

+---+---+---+
|   |   +---+
| A +---+---+
|   |   |   |
+---+---+---+

Je voudrais le transformer en ceci:

+---+---+---+
|   |   +---+
+---+ A +---+
|   |   |   |
+---+---+---+

Ce qui est difficile / ennuyeux à faire <c-w> {H,J,K,L}.

David Wolever
la source

Réponses:

427

Ctrl w vous donne le "mode de commande windows", autorisant les modificateurs suivants:

  • Ctrl w+ R- Pour faire pivoter les fenêtres vers le haut / gauche.

  • Ctrl w+ r- Pour faire pivoter les fenêtres vers le bas / la droite.

Vous pouvez également utiliser le "mode de commande windows" avec les touches de navigation pour modifier la position d'une fenêtre:

  • Ctrl w+ L- Déplacer la fenêtre actuelle vers "l'extrême droite"

  • Ctrl w+ H- Déplacer la fenêtre actuelle vers "l'extrême gauche"

  • Ctrl w+ J- Déplacer la fenêtre actuelle vers le "tout en bas"

  • Ctrl w+ K- Déplacer la fenêtre actuelle vers le "tout en haut"

Consultez :help window-movingpour plus d'informations

Ricardo Valeriano
la source
2
<c-w> rtourne uniquement verticalement.
David Wolever
10
@David Wolever, vous devez utiliser les majuscules dans ce cas, quelque chose comme: Ctrl-W + Shift-L, par exemple. Je pense que cela peut être ce que vous recherchez.
Ricardo Valeriano
@David - vient de tester cela et <cw> r a fonctionné horizontalement pour moi.
ostler.c
3
@ ostler.c créer un fractionnement vertical, puis créer un fractionnement horizontal dans l'une des colonnes. Utilisez maintenant <cw> r et il ne fait que faire défiler les deux fenêtres dans la même division verticale.
Chev
1
@ nn0p non, ils déplacent les fenêtres. <cw> h déplace le curseur vers la fenêtre suivante à gauche, tandis que <cw> H déplace la fenêtre actuelle (avec le curseur) à l'extrême gauche.
MarSoft
60

Celui-ci est le plus utile pour moi (et c'est probablement la bonne réponse à la question):

  • Ctrl W+ xOU Ctrl W+ Ctrl x- Fait pivoter la fenêtre active avec la fenêtre la plus proche vers la droite.
fabiomcosta
la source
très utile lorsque vous êtes au milieu des volets et que vous souhaitez échanger avec celui de droite. Merci pour celui-ci!
Daniel Andrei Mincă
8

Voulez-vous déplacer la fenêtre elle-même ou simplement la position de votre curseur?

A côté de la rotation ou le vélo comme vous l' avez mentionné, il est possible de déplacer la fenêtre elle - même au loin en haut, en bas, à gauche ou à droite, avec respectivement:

^W K
^W J
^W H
^W L

Je ne pense pas qu'il existe un moyen intégré par défaut de déplacer une fenêtre d'un endroit vers la droite.

Bitterzoet
la source
1
Je veux déplacer les fenêtres, pas le curseur.
David Wolever
1
Ensuite, c'est aussi loin que vous pouvez aller avec les commandes de la fenêtre vim, si cela vous était utile, veuillez le marquer comme la solution :-)
Bitterzoet
2
Je voterais contre le commentaire de @Bitterzoet si je le pouvais. Voir les réponses ci-dessus
Nathan
1

Il semble vraiment que vim ne puisse pas faire cela avec les cartes clés standard. La documentation indique que les commandes ^ WK, J, H et L fonctionnent en créant le fractionnement et en ouvrant le tampon à la position maintenant, j'ai donc écrit une fonction de la même manière: Masquer le tampon, déplacer vers la gauche, diviser, puis ouvrez le tampon d'origine:

" Rotate a window horizontally to the left
function! RotateLeft()
    let l:curbuf = bufnr('%')
    hide
    wincmd h
    split
    exe 'buf' l:curbuf
endfunc

" Rotate a window horizontally to the right
function! RotateRight()
    let l:curbuf = bufnr('%')
    hide
    wincmd l
    split
    exe 'buf' l:curbuf
endfunc
W Klink
la source
-6
  • ctrl + h déplacer le curseur vers la fenêtre suivante (droite)

  • ctrl + l déplacer le curseur vers la fenêtre précédente (gauche)

pour plus d'informations, veuillez vous référer: :help window-moving

xautjzd
la source
3
Pas correcte. Ctrl+h/lne sont pas des liaisons standard pour la navigation dans les fenêtres (bien qu'elles puissent bien sûr être configurées et sont proposées par certains plugins). Et cela ne répond pas de toute façon à la question d'origine.
MarSoft