Comme l'a dit ZyX sur #vim, cette question sonne comme "Pourquoi les experts de Vim préfèrent-ils savoureux à chaud?" .
Les "experts Vim" ne préfèrent pas les tampons aux onglets: ils utilisent les tampons comme proxy de fichier qu'ils sont et les pages à onglet comme espaces de travail. Les tampons et les pages à onglets ont des objectifs différents, donc préférer l'un à l'autre n'a aucun sens.
Le problème avec les tampons et les onglets est celui de la confusion , causée par une combinaison de faits indépendants.
La plupart des éditeurs de texte et des IDE «modernes» utilisent une métaphore de tabulation pour représenter les fichiers chargés. Cette métaphore agit comme un système d'information - elle montre à l'utilisateur quels fichiers sont ouverts et leur état - et comme un appareil interactif - elle permet à l'utilisateur de manipuler (réorganiser, sélectionner, fermer…) ces fichiers ouverts. Malgré leurs nombreuses limites, les onglets sont partout et les gens y sont habitués et les attendent partout.
Vim a introduit des pages à onglets dans 7.0 pour permettre à ses utilisateurs de créer des "espaces de travail" ad hoc. Rien dans leurs fonctionnalités, leurs options spécifiques, leurs commandes spécifiques ou leurs :help
sections ne suggère que les pages à onglet pourraient ou devraient être utilisées comme proxy de fichier.
Rien que le nom et l'apparence des "onglets", bien sûr, ce qui crée beaucoup de confusion.
Sans :set hidden
, qui est désactivé par défaut et pas très facile à trouver, Vim rend impossible de basculer vers un autre tampon sans écrire celui en cours ou abandonner ses modifications. Les nouveaux utilisateurs, ignorant cette option, n'ont d'autre choix que de se tourner vers une utilisation intensive de Windows ou vers la fonctionnalité "tabulaire" la plus proche qu'ils peuvent trouver: les pages d'onglet.
"Tab page" est un choix de nom malheureux pour cette fonctionnalité, en particulier à une époque dominée par l'idée que la lecture de la documentation est une perte de temps.
Dans Vim, les pages à onglets sont une abstraction construite au-dessus des fenêtres, elles-mêmes une abstraction construite au-dessus des tampons. Chaque nouveau niveau ajoute des fonctionnalités utiles mais restreint votre flux de travail.
La "voie tampon"
Avec un flux de travail basé sur un tampon, les fichiers avec lesquels vous travaillez sont répartis sur une seule dimension. Vous pouvez parcourir vos tampons, vous pouvez accéder à un tampon spécifique en tapant une partie de son nom (avec complétion) ou son numéro, vous pouvez alterner entre les tampons, vous pouvez les cibler assez facilement. Il n'y a pratiquement pas de friction.
Huit tampons ouverts, un seul visible:
Commutation par numéro:
Changement de nom:
Les tampons sont les proxys de fichiers de Vim. Si vous pensez en termes de fichiers, vous pensez en termes de tampons.
La "voie fenêtre"
Avec un workflow basé sur une fenêtre, vos "fichiers" sont tous les deux distribués le long de la même dimension "virtuelle" comme ils le feraient si vous utilisiez uniquement des tampons et le long de deux autres dimensions "physiques". Mais les espaces cartésiens dans lesquels se trouvent ces dimensions sont presque complètement séparés: passer à un autre tampon signifie toujours «passer à un autre fichier» mais pas à une autre fenêtre. Le tampon qui correspond au fichier souhaité peut être affiché dans cette fenêtre mais il peut également être affiché dans une autre, peut-être dans une autre page à onglet, ou pas du tout.
Avec Windows, la navigation entre les fichiers ouverts devient trop complexe ou trop simpliste, même avec 'switchbuf'
et :sb
. Principalement parce que vous êtes obligé d'utiliser deux ensembles de commandes pour ce qui est essentiellement la même chose: accéder à un tampon.
Windows a leur utilisation, comme décrit ci-dessous, mais ils n'ont pas ce qu'il faut pour remplacer les tampons dans le flux de travail de quiconque.
Ici, je travaille sur un schéma de couleurs Vim. Les deux fenêtres sont des vues différentes du même tampon: celle du haut sert de référence, avec un tableau des codes de couleurs utilisés dans le schéma de couleurs, et celle du bas est l'endroit où je travaille:
Les fenêtres ne sont pas conçues comme des proxys de fichiers et ne peuvent pas être transformées en un: ce sont des "conteneurs" ou des "fenêtres" conçues pour vous offrir une vue dans un tampon. Ni plus ni moins.
La "façon tabulation"
Avec un workflow basé sur des onglets, vous essayez essentiellement de reproduire l'expérience utilisateur à laquelle vous êtes habitué à partir de votre éditeur précédent tout en ignorant complètement la nature même des pages à onglet de Vim. Si nous oublions un instant que cette stratégie est généralement très improductive, il est également impossible, tout comme avec Windows, de forcer Vim à adhérer à ce paradigme "un fichier = un onglet" sans perdre beaucoup de flexibilité.
Travaillant toujours avec les mêmes fichiers que ci-dessus, la tabline occupe un espace important pour pratiquement aucun avantage. Tous mes fichiers et tous mes onglets sont appelés, javascript*.vim
donc je ne peux pas le faire 3gt
et je suis sûr que je vais me retrouver au bon endroit et il est impossible d'atteindre un onglet spécifique par son nom. Ajoutez à cela le fait que son étiquette peut très bien être très inutile mais parfaitement logique [Quickfix List]
… Puisqu'il n'y a aucun moyen pratique de lier un fichier / tampon à une page à onglet, il ne vous reste en gros qu'un seul moyen pratique de naviguer entre les pages à onglet / buffers / files: cyclisme.
Et oui, ma tabline est encombrée de seulement 8 onglets, imaginez si j'en avais 20!
Huit tampons ouverts dans huit pages à onglets (faux)
Deux onglets pour deux tâches spécifiques (à droite)
Les pages à onglet sont des "conteneurs" ou des "fenêtres" conçues pour contenir une ou plusieurs fenêtres, elles-mêmes également des "conteneurs" conçus pour contenir des tampons.
En conclusion
Les "experts Vim" (supposons que je puisse parler comme si j'étais un) ne préfèrent pas les tampons aux onglets: ils utilisent simplement Vim tel qu'il a été conçu et sont parfaitement à l'aise avec ce design:
Les "experts Vim" ont 2, 30 ou 97 tampons chargés et sont très heureux de ne pas avoir à gérer la distribution spatiale;
lorsqu'ils ont besoin de comparer deux fichiers ou de travailler dans une partie de la mémoire tampon actuelle tout en en gardant une autre comme référence, les "experts Vim" utilisent des fenêtres car c'est ainsi qu'ils sont censés être utilisés;
lorsqu'ils ont besoin de travailler pendant un certain temps sur une partie distincte du projet sans toucher à leur vue actuelle, les "experts Vim" chargent une toute nouvelle page à onglet.