web-dev-qa-db-fra.com

Pourquoi les experts de Vim préfèrent-ils les tampons aux onglets?

Je ne comprends pas tampons. Lorsque j'ouvre 3 fichiers sur le même onglet et ferme ma fenêtre, je suis généralement ennuyé de savoir, la prochaine fois que j'ouvrirai l'un de ces fichiers, qu'il existe d'étranges fichiers d'échange en attente et me donnant des messages pénibles. Mais maintes et maintes fois, j'ai lu que ces choses sont le nirvana de la productivité que je manque et que des étiquettes ont été créées pour que les plébéiens puissent les utiliser.

Je vous demande donc, expert Vim: quels sont les avantages de l’utilisation des tampons sur les tabs? Je ne vois pas en quoi la différence pourrait être profondément différente, mais je me considérerais seulement au niveau débutant-intermédiaire du système d'exploitation Vim. :ls:b# est-il vraiment beaucoup plus rapide que gting autour? Je pense que cela doit aller plus loin que cela.

178
2c2c

J'avais l'habitude de garder chaque tampon dans un onglet séparé, mais je me suis fatigué de constamment gt et gT-ing autour de partout.

J'ai également estimé que les tampons étaient trop difficiles à gérer.

Voici quelques techniques qui ont totalement changé mon opinion antérieure:

Voici mon flux de travail typique:

  • Ouvrez Vim et utilisez :e (généralement avec un regex comme :e src/**/F*Bar.js) pour ouvrir un tampon.
  • Réalisez que j'ai besoin d'ouvrir un autre fichier. Utilisez également :e pour cela. Si je souhaite basculer entre ce tampon et le tampon actuellement ouvert, je vais utiliser :sp ou :vsp pour l'ouvrir dans une fenêtre séparée.
  • Répétez l'opération jusqu'à obtenir les 3 à 5 fichiers que je vais permuter en utilisant les techniques de la liste à puces ci-dessus pour voler entre vos tampons.
  • Si je veux "recommencer" avec mes tampons, fermez simplement Vim et rouvrez-le.

Je sentais qu'après environ une semaine de forçage de ces nouveaux modèles, il devenait beaucoup plus facile de visualiser quels tampons j'avais ouverts et comment accéder à l'un d'entre eux en seulement quelques coups automatiques.

57
Jonathan.Brink

L'inconvénient des onglets est que vous ne pouvez voir que le contenu d'un à la fois. Ainsi, si vous les utilisez comme dans un navigateur, vous perdez la possibilité de voir plusieurs tampons côte à côte, ou même de voir des parties séparées du même fichier en plusieurs parties. Par conséquent, beaucoup recommandent d’utiliser des onglets uniquement pour séparer différents espaces de travail (par exemple, un pour un projet Java, un autre pour une liste de tâches, un troisième pour pirater un script sur le côté).

Les problèmes que vous décrivez donnent l’impression que vous utilisez mal Vim. Soit (généralement) une seule instance dédiée. Ensuite, les tampons qui deviennent masqués vont simplement "réapparaître" si vous les rééditez (et vous pouvez maintenant utiliser la liste des tampons pour les rappeler), et il n'y aura pas de messages de fichier d'échange. Ou bien, utilisez des instances Vim distinctes pour chaque session projet/fichier/édition, mais prenez l'habitude de :quit entièrement chaque instance lorsque vous avez terminé avec le fichier.

10
Ingo Karkat

Un autre conseil, lorsque vous utilisez le nom du tampon comme argument pour: tampon, vous n'avez pas à spécifier de noms entiers. Cependant, si plus d'un tampon correspond à l'argument donné, les tampons ne seront pas changés.

Tout fragment du nom du tampon peut être utilisé pour correspondre. Par exemple, si vous avez les tampons request_manager.Java et queue_manager.Java, alors :buffer que ou :b que correspond aux deux, mais passera à queue_manager.Java, car elle correspond au début.

6
Julius Martin

J'utilise des onglets, Ctrl-P et Vim dans mon flux de travail et depuis plus d’un an maintenant:

  • J'ai ) et ( mappé sur "aller à l'onglet suivant" et "aller à l'onglet précédent" respectivement. tn ouvre un nouvel onglet. Je me sers également de tabm pour aider à organiser les choses.

  • J'utilise des sessions Vim pour des groupes de fichiers relatifs à l'histoire/au bogue actuel sur lequel je travaille, généralement par catégorie. Ces sessions sont écrasées au cours du processus.

  • Je n'ai encore rien trouvé de mieux que Ctrl-P, mais cela prend un peu de temps pour traiter tous les fichiers.

3
ShangoThrax

Ajoutez-les à votre .vimrc et commencez à aimer les tampons:

:nnoremap <Tab> :n<cr>
:nnoremap <S-Tab> :N<cr>

De cette façon, vous pouvez les faire défiler dans mode normal via Tab/ShiftTab.

0
sjas

Je charge les tampons "sélectionnés" sous forme d'onglets pour basculer rapidement entre eux .. (TAB/S-TAB) . Le cadre des espaces de travail s'adapte ici comme pour moi, les tampons ou les onglets sont principalement liés à la visibilité. Je peux faire apparaître des fichiers importants/de travail dans des fenêtres et des onglets et masquer ceux que je n'ai pas besoin d'utiliser en arrière-plan à la volée sans avoir à mémoriser les chemins ou à prendre le temps de les chercher et de les charger à nouveau lorsque le besoin s'en fait sentir. Cela permet de gérer plusieurs tâches ou projets au cours d'une session VIM. Je suppose que cela était important auparavant sur les machines disposant de peu de mémoire, mais également pour la concentration de toutes les tâches d'édition dans un seul cadre d'application. Les raccourcis de décalage de mémoire tampon sont également réglés sur Ctrl-Droite/Gauche, ce qui me permet également de changer rapidement de mémoire tampon. 

En bout de ligne, on ne peut diviser autant que quelques fenêtres pour son utilisation, mais on peut conserver plusieurs paramètres de fenêtre dans plusieurs onglets, ce qui élargit son espace de travail et améliore son flux de travail, ce qui permet de diviser facilement des tâches complexes comportant plusieurs fichiers. . 

Pour les fichiers d'échange, vous pouvez indiquer à VIM de tous les conserver dans un dossier de votre désignation. Pour cette utilisation, :set directory.

0
elig

Je voudrais suggérer une mise en œuvre brillante d'un bon nombre d'années auparavant: kien/tabman.vim . Il clarifie les points suivants:

  • On peut avoir autant de tampons soigneusement cachés quelque part;
  • De par leur conception, les onglets sont conçus pour afficher les tampons de manière créative .
    • Avec un plugin tabline approprié, on peut afficher tous les tampons cachés dans la rangée supérieure (tabline);
    • D'après mon expérience avec vim-airline , le tableau affichera très peu d'informations pertinentes lorsque je créerai un nouvel onglet.
    • Deux étiquettes occuperont côte à côte la fente de la tablette, gaspillant le reste des espaces horizontaux
    • Pire encore, je n’ai plus aucune idée de ce que sont les tampons cachés.

Cela a été une merveilleuse redécouverte de ce plugin magique, qui aurait dû rester dans ma configuration Vim pendant un bon nombre d’années aussi . est mon superman quand il s'agit d'avoir une vue à vol d'oiseau de la façon dont les tampons ont été disposés à travers différents onglets.

0
llinfeng