2011-03-30 6 views
31

Je me demande comment je peux ouvrir tous les tampons actuels dans vi (m) dans les nouveaux onglets. Je sais que vous pouvez éditer votre fichier vimrc pour faire quelque chose comme ça, mais je préférerais simplement pouvoir lancer une commande si nécessaire. Je peux le faire manuellement en enchaînant les nouvelles commandes tampon onglet et ouvert, tels que:Vim: Ouvrir chaque tampon dans un nouvel onglet

:tabnew | b 1 

Mais je préférerais une approche plus automatique.

Répondre

33

vous pouvez attribuer un mappage à cette commande:

:bufdo tab split 
  • explication:
    • bufdo [commande] appliquer la [commande] pour tous les tampons
    • onglet divisé prendre le tampon actuel et ouvrir un onglet avec celui-ci

enfin, la carte suivante:

map ,bt :bufdo tab split<CR> 

salue

45

Le chemin à parcourir est:

:tab sball 

De l'aide:

« sball: Réorganiser l'écran pour ouvrir une fenêtre pour chaque tampon dans la liste des tampons ... Lorsque l'onglet |: | modificateur est de nouvelles fenêtres utilisées sont ouvertes dans un nouvel onglet, jusqu'à « tabpagemax » «

Sans |. onglet | modificateur, il ouvre chaque tampon en vue fractionnée

:sball 

ou pour ouvrir à. la plupart d'entre eux 6

:6sball 

etc.

+0

Ne pas oublier la « boule verticale » vaguement à consonance sport à partager sur l'axe des y. –

+0

Certaines commandes de vim sont très amusantes :) – sehe

+0

Pour une raison quelconque, ': tab sball' sépare aussi mon onglet actuel en 5 divisions horizontales différentes. Odd ... – sixtyfootersdude

6

[J'ai commenté la réponse acceptée ci-dessus, mais pas assez de points de rep.]

Pour moi, la réponse acceptée laisse les nouveaux onglets sans coloration syntaxique, s'il s'agit de tampons qui n'ont jamais été consultés auparavant. (Pour reproduire - sélectionnez un certain nombre de fichiers XML, choisissez Modifier avec Single Vim dans l'Explorateur Windows, essayez-le à partir de là.) Je ne sais pas pourquoi cela se produit, donc ma solution est de réactiver la coloration syntaxique. Je trouve aussi ennuyeux que le dernier tampon se termine par deux onglets, donc ma solution est de passer à la dernière tabulation et de la fermer.

:bufdo tab split 
:tablast 
:tabclose 
:syntax on 

Ainsi, dans une correspondance,

:map ,bt :bufdo tab split<CR>:tablast<CR>:tabclose<CR>:syntax on<CR> 
Questions connexes