Si jamais vous revenez sur cette question, veuillez changer la réponse acceptée, celle de DrAI est beaucoup plus correcte que celle de Mykola.
gbr
Réponses:
261
En plus de l' :tabeditapproche suggérée précédemment , un moyen plus rapide de le faire est (en mode normal) d'appuyer sur Ctrl- WShift- T. Ctrl-W est le préfixe général pour une grande variété de commandes de manipulation de fenêtres.
Notez que help Ctrl-W_Tvous amène à l'entrée d'aide de Ctrl-W_t(minuscules), cependant, plus bas dans la page se trouve l' Ctrl-W_Tentrée (avec un T majuscule), disant "Déplacer la fenêtre actuelle vers une nouvelle page à onglet ...."
Rabarberski
1
@DrAl et comment déplaçons-nous une nouvelle fenêtre d'onglet vers une fenêtre fractionnée?
Ramiz Uddin
@RamizUddin Il n'y a pas de moyen simple de faire cela (car il n'est pas évident dans quelle fenêtre vous voulez vous séparer). Cependant, vous pouvez trouver le numéro de tampon de votre page à onglet actuelle avec :echo bufnr("")et en utilisant ce numéro, vous pouvez diviser une fenêtre avec :sp #3ou :sb 3(en supposant que le nombre était 3). Vous pourrez peut-être proposer des mappages ou des fonctions pour simplifier cela.
DrAl
1
Comment déplacer le tampon vers un nouvel onglet, en conservant son état d'annulation / rétablissement. En d'autres termes, je ne veux pas ouvrir le même fichier dans un nouvel onglet, je veux littéralement déplacer le tampon vers un nouvel onglet, afin que l'historique des modifications puisse être utilisé dans le nouvel onglet. S'il n'y a pas de moyen par défaut de le faire, je parie qu'un plugin peut être créé qui ajoute un nouveau raccourci pour ce faire qui écrit l'historique des annulations dans le fichier d'échange pour le nouveau tampon.
trusktr
2
@trusktr J'imagine que l'ouverture du tampon dans un nouvel onglet avec :sbfonctionnerait, mais avec les versions récentes de Vim (> = 7.3), vous pouvez également utiliser l'annulation persistante en définissant set undodir=/path/to/diroù / chemin / vers / dir est un répertoire que vous créé à cet effet et ensuite set undofile. Cela vous permettra de quitter vim, puis de redémarrer et de conserver l'état d'annulation / rétablissement.
Je suis simplement curieux de savoir pourquoi vous avez inclus le <CR> avec cela.
Suisse
17
Pour la même raison, j'ai inclus ":". Ceci est la combinaison complète de touches vim en mode normal et vous pouvez l'utiliser dans 'nnoremap' et dans 'nmap'
Mykola Golubyev
6
Cela fonctionne aussi bien sauf que cela clone / duplique la fenêtre dans un nouvel onglet au lieu de la fermer d'abord, puis de l'ouvrir dans un nouvel onglet. Pas grand-chose. Juste quelque chose dont il faut être conscient.
A-Dubb
6
Cela ne déplace pas le tampon vers un nouvel onglet, cela ouvre simplement le même fichier dans un nouvel onglet, mais vous n'aurez pas d'historique d'annulation / rétablissement, etc.
trusktr
5
C-w Test un moyen plus rapide de faire la même chose
Dylanthepiguy
3
Cela déplace le tampon le plus récent dans un nouvel onglet et restaure le tampon précédent dans l'onglet actuel. J'utilise ceci après avoir glissé un nouveau fichier dans mon Gvim
J'utilise ceci qui vous donne deux fonctions qui peuvent être liées à une paire de raccourcis clavier ou de commandes, et qui fonctionne de manière assez intuitive. Je suis presque sûr qu'il offre un comportement encore plus convivial que par exemple Ctrl-W_T.
Par exemple, lorsque plusieurs fenêtres sont ouvertes dans plusieurs onglets, l'utilisation de cette fonction vous permet de déplacer spécifiquement la fenêtre actuelle vers l'onglet suivant ou précédent, et si vous déplacez quelque chose avant le premier onglet ou après le dernier onglet, il se transforme dans un tout nouvel onglet.
Cela signifie que si vous avez 2 onglets, chacun ayant une seule fenêtre, déplacer la fenêtre du premier onglet vers la droite le combinera avec le deuxième onglet pour donner un seul onglet avec deux fenêtres. Je ne sais pas à quel point cette opération est compliquée à réaliser en utilisant des commandes traditionnelles.
Cela signifie qu'une seule paire de commandes de déplacement permet à la fois de déplacer les fenêtres autour des onglets, de diviser les fenêtres en onglets (en poussant une fenêtre vers la fin) et de joindre des onglets séparés dans des fenêtres à l'intérieur d'un seul onglet, à peu près tout vous pourriez éventuellement vouloir, à court de disposition positionnelle (qui est un sujet séparé et pour lequel les commandes Ctrl-W+ intégrées Shift-HJKLfonctionnent bien).
Réponses:
En plus de l'
:tabedit
approche suggérée précédemment , un moyen plus rapide de le faire est (en mode normal) d'appuyer sur Ctrl- W Shift- T. Ctrl-W est le préfixe général pour une grande variété de commandes de manipulation de fenêtres.Voir:
la source
help Ctrl-W_T
vous amène à l'entrée d'aide deCtrl-W_t
(minuscules), cependant, plus bas dans la page se trouve l'Ctrl-W_T
entrée (avec un T majuscule), disant "Déplacer la fenêtre actuelle vers une nouvelle page à onglet ....":echo bufnr("")
et en utilisant ce numéro, vous pouvez diviser une fenêtre avec:sp #3
ou:sb 3
(en supposant que le nombre était 3). Vous pourrez peut-être proposer des mappages ou des fonctions pour simplifier cela.:sb
fonctionnerait, mais avec les versions récentes de Vim (> = 7.3), vous pouvez également utiliser l'annulation persistante en définissantset undodir=/path/to/dir
où / chemin / vers / dir est un répertoire que vous créé à cet effet et ensuiteset undofile
. Cela vous permettra de quitter vim, puis de redémarrer et de conserver l'état d'annulation / rétablissement.Essayer
la source
C-w T
est un moyen plus rapide de faire la même choseCela déplace le tampon le plus récent dans un nouvel onglet et restaure le tampon précédent dans l'onglet actuel. J'utilise ceci après avoir glissé un nouveau fichier dans mon Gvim
Vous pouvez le mapper comme ça sur Ctrl-Backspace
il fonctionne particulièrement bien avec
la source
J'utilise ceci qui vous donne deux fonctions qui peuvent être liées à une paire de raccourcis clavier ou de commandes, et qui fonctionne de manière assez intuitive. Je suis presque sûr qu'il offre un comportement encore plus convivial que par exemple
Ctrl-W_T
.Par exemple, lorsque plusieurs fenêtres sont ouvertes dans plusieurs onglets, l'utilisation de cette fonction vous permet de déplacer spécifiquement la fenêtre actuelle vers l'onglet suivant ou précédent, et si vous déplacez quelque chose avant le premier onglet ou après le dernier onglet, il se transforme dans un tout nouvel onglet.
Cela signifie que si vous avez 2 onglets, chacun ayant une seule fenêtre, déplacer la fenêtre du premier onglet vers la droite le combinera avec le deuxième onglet pour donner un seul onglet avec deux fenêtres. Je ne sais pas à quel point cette opération est compliquée à réaliser en utilisant des commandes traditionnelles.
Cela signifie qu'une seule paire de commandes de déplacement permet à la fois de déplacer les fenêtres autour des onglets, de diviser les fenêtres en onglets (en poussant une fenêtre vers la fin) et de joindre des onglets séparés dans des fenêtres à l'intérieur d'un seul onglet, à peu près tout vous pourriez éventuellement vouloir, à court de disposition positionnelle (qui est un sujet séparé et pour lequel les commandes
Ctrl-W
+ intégréesShift-HJKL
fonctionnent bien).la source