web-dev-qa-db-fra.com

Comment modifier un tampon existant dans un nouvel onglet dans vim?

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?

47
innaM

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 .

28
DaveParillo

Vous souhaitez ouvrir un tampon dans un nouvel onglet?

Fractionner l'écran (Ctrl-W s), ouvrir une fenêtre et Ctrl-W T

43
Rook

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.

25
John Whitley

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.

23
rkjnsn

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 
6
Shamaoke

Ajoutez juste un point que d'autres gars n'ont pas mentionné.

  • fenêtre actuelle vers nouvel onglet

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.

  • tampon actuel vers nouvel onglet

:tabe % pour ouvrir un nouvel onglet pour le tampon actuel.

7 frappes.

  • tampon vers un nouvel onglet

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.

4
liuyang1