Supposons que j'ai commencé vim comme ceci:
vim foo bar
Maintenant, je décide que je veux chacun de ces fichiers dans son propre onglet. Existe-t-il un moyen de le faire sans quitter vim et sans ajouter l'option -p
à ma ligne de commande?
Lorsque vous démarrez vim comme cela, vous n'obtenez pas de client vim, l'éditeur de texte utilise le terminal ou l'invite cmd - les deux fichiers se trouvent dans deux tampons différents. Utilisez :ls
pour lister les tampons:
:ls
1 %a "foo" line 6
2 "bar" line 0
Le% a est le tampon actif. Vous pouvez utiliser :b2
pour basculer vers le tampon 2 ou :bn
pour passer au suivant ou à :bp
pour précédent. Je préfère (CTRL-W v) pour scinder les fenêtres verticalement plutôt que (CTRL-W s), qui se divise horizontalement.
Si vous avez 2 fichiers chargés et aucun onglet (pour le moment), vous pouvez, :tabnew
et dans le nouvel onglet, tapez :b2
Si vous voulez toujours que les tampons soient chargés dans leurs propres onglets, consultez cet article .
Vous souhaitez ouvrir un tampon dans un nouvel onglet?
Fractionner l'écran (Ctrl-W s), ouvrir une fenêtre et Ctrl-W T
Voici un autre moyen d'accomplir ce que l'OP a demandé:
:bufdo tab split
Cela ouvrira chaque tampon dans un onglet, quel qu’il soit. Si vous en utilisez autant, il est facile de créer un mappage dans votre fichier .vimrc. Combiné avec quelque chose comme ce petit plugin vim , ce qui suit ouvrira chaque élément de :grep
(ou : Ack ) dans un onglet distinct:
:grep foo
:QuickFixOpenAll
:bufdo tab split
Bien entendu, lorsque vous aurez recours à un plugin, il sera assez facile de le modifier pour ouvrir le contenu de la liste de correctifs directement dans des onglets.
UPDATE: Je dois vraiment faire un commentaire au commentaire de ggustafsson ci-dessous. C'est de loin la meilleure réponse du lot et illustre admirablement la tendance de Vim au comportement compositionnel. La suggestion est:
:tab sball
Il vaut la peine de consulter l'aide de Vim pour : tab et : sball pour voir ce qui se passe ici.
Vous pouvez y parvenir en combinant la commande tab
avec la commande sb[uffer]
.
Vous devez d’abord connaître l’identifiant de la mémoire tampon que vous souhaitez ouvrir dans un nouvel onglet. Vous pouvez le trouver avec la commande ls
:
:ls
1 %a "foo" line 1
2 "bar" line 0
Une fois que vous avez l'ID, vous pouvez facilement l'ouvrir dans un nouvel onglet en utilisant:
:tab sb 2
La commande sb
ouvre normalement le tampon donné dans une nouvelle fenêtre divisée, mais la commande tab
provoque son ouverture dans un nouvel onglet.
La commande tab
vous permet également de spécifier l'emplacement de création du nouvel onglet dans la liste d'onglets. Par exemple, :0tab sb 2
ferait en sorte que le nouvel onglet "barre" apparaisse au début de la liste au lieu d’après l’onglet actuel.
1. Ouvrez deux fichiers dans Vim.
$ vim foo bar
2. Vérifiez le nombre de tampons.
: ls 1% un "foo" 2 "bar"
. Enchaînez deux commandes: tabnew
pour ouvrir un nouvel onglet et b <buffer_number>
pour charger le tampon souhaité dans l'onglet.
: tabnew | b 2
Ajoutez juste un point que d'autres gars n'ont pas mentionné.
Si vous avez plusieurs fenêtres, <C-W>T
déplacera cette fenêtre dans un nouvel onglet. Cependant, ce raccourci ne concerne que "Fenêtre", pas "tampon". Si vous préférez ce style, :sp
ou <C-W>s
pour dupliquer le tampon actuel dans une fenêtre supplémentaire, puis <C-W>T
pour le déplacer vers un nouvel onglet.
4 frappes ou 7 frappes.
:tabe %
pour ouvrir un nouvel onglet pour le tampon actuel.
7 frappes.
Si vous utilisez le plugin CtrlP, vous pouvez également utiliser "CtrlPBuffer", puis avec le raccourci <C-t>
pour l'ouvrir avec une nouvelle page à onglet. Ce style permet de passer facilement à différents tampons.
Avec raccourci de "CtrlPBuffer", 4 frappes de touche ou plus.