Lorsque je travaille avec VIM, j'ai toujours plusieurs fenêtres visibles. Parfois, j'aimerais avoir un moyen simple, d'échanger ces fenêtres par endroits. Existe-t-il un plugin, une macro, etc. pour rendre cela plus facile? BTW, j'utilise MiniBufExplorer.
123
Réponses:
Il existe quelques commandes utiles intégrées qui vous donnent un certain contrôle, mais ce n'est pas complet. Les principaux sont:
Ctrl- W, r(c'est-à-dire maintenir CTRL, appuyer W, relâcher CTRL, appuyer r) - qui fait tourner les fenêtres (la première fenêtre devient la deuxième, la seconde devient la troisième, etc.)
Ctrl- W, x- permuter la fenêtre actuelle avec la suivante
Ctrl- W, Shift- H- déplacer cette fenêtre à l'extrême gauche
Ctrl- W, Shift- K- déplacer cette fenêtre vers le haut
(et de même pour Ctrl- W, Shift- Jet Ctrl- W, Shift- L). Voir:
pour plus d'informations.
la source
J'ai écrit et j'utilise l'extrait de code suivant dans mon vimrc pour copier-coller mes fenêtres Vim.
Cela définit par exemple les raccourcis suivants:
<c-w>y
: "Arrache la fenêtre", c'est à dire stocke le numéro du tampon dans la fenêtre courante dans une variable globale.<c-w>pp
: "Place la fenêtre à la place de la fenêtre courante", c'est-à-dire qu'il lit le numéro de tampon stocké précédemment et ouvre ce tampon dans la fenêtre courante. Il stocke également le numéro du tampon qui se trouvait dans la fenêtre actuelle.Si par "permuter ces fenêtres par endroits", vous voulez dire "ouvrir le tampon dans la fenêtre A dans la fenêtre B, et vice versa, sans changer la position des fenêtres", vous pouvez utiliser la séquence de touches suivante pour permuter les fenêtres:
<c-w>y
(tirant sur le numéro du tampon)<c-w>pp
(coller le tampon)<c-w>pp
(coller à nouveau le tampon)Cela ne fonctionne que dans Vim> = 7.0.
la source
J'ai posé une question similaire à peu près au même moment: je voulais un moyen de permuter les fenêtres spécifiquement sans modifier une mise en page arbitrairement compliquée. J'ai fini par créer un plugin vim à partir de l'une des solutions suggérées. Il s'appelle WindowSwap.vim ; installez-le avec votre gestionnaire de plugins vim préféré et donnez-lui un tourbillon.
Avec WindowSwap.vim, vous
<Leader>yw
pour tirer une fenêtre.<Leader>pw
pour coller cette fenêtre, en l'échangeant avec la position de la première.Les combinaisons de touches sont bien sûr configurables selon vos préférences.
la source
Comme
<c-w>r
ou<c-w>x
a une restriction selon laquelle vous ne pouvez pas faire pivoter ou échanger des fenêtres Lorsque les divisions de fenêtre verticales et horizontales sont mélangées. Et<c-w>H
peut faire changer la disposition de la fenêtre au-delà de vos attentes, surtout lorsque vous avez de nombreuses fenêtres.Vous pouvez donc faire un certain travail pour satisfaire vos besoins particuliers de commutation fenêtre / tampon. Voici un exemple de changement de la fenêtre actuelle avec la fenêtre en haut à gauche (généralement je la maximise verticalement):
la source
À mon avis, http://vimcasts.org/episodes/working-with-windows/ a la réponse parfaite à cette question. En bref:
ctrl-w w
faire défiler entre les fenêtres ouvertesctrl-w h
concentrer la fenêtre vers la gauchectrl-w j
concentrer la fenêtre vers le basctrl-w k
concentrer la fenêtre vers le hautctrl-w l
concentrer la fenêtre vers la droitectrl-w r
faire pivoter toutes les fenêtresctrl-w x
échanger la fenêtre courante avec son voisinctrl-w H
déplacer la fenêtre actuelle à l'extrême gauchectrl-w J
déplacer la fenêtre actuelle vers le basctrl-w K
déplacer la fenêtre actuelle vers le hautctrl-w L
déplacer la fenêtre actuelle à l'extrême droitela source