Disons que j'ai un tas d'onglets ouverts dans Vim, avec une tabline qui ressemble à ceci:
1 v/file1.py 2 t/file.py 1 t/file.py 1 o/otherfile.py
Voyez comment deux onglets disent tous les deux "t / file.py"? Ce sont des fichiers différents, ils sont simplement transformés en la même étiquette d'onglet.
Dans mon flux de travail, les titres des onglets sont souvent ambigus (yay pour Chef nommant tout "default.rb") ou inutiles ("Je sais que l'un de ces 8 onglets avec 4 tampons a chacun le fichier que je recherche ...").
Je voudrais renommer les onglets pour indiquer ce qu'ils représentent logiquement:
1 homepage_view 2 tests 1 homepage_template 1 o/otherfile.py
Je suis d'accord avec les onglets par défaut sur une étiquette basée sur le nom de fichier, tant que je suis libre de le changer une fois l'onglet créé.
Comment puis-je faire cela dans Vim?
:help setting-tabline
(pour vim dans un terminal) ou:help setting-guitablabel
(pour gvim). Vous pouvez écrire une fonction qui vérifie une variable tab-local et retourne cela ou une valeur par défaut. Puis, après l' ouverture d' un onglet,:let t:mytablabel = 'homepage_template'
.Réponses:
Il y a un joli petit plugin appelé Taboo qui rend cela facile. Il suffit de l'installer et vous pouvez ensuite modifier le titre de l'onglet avec:
Vous pouvez consulter le code source de ce plugin si vous êtes intéressé à écrire votre propre solution.
la source
Taboo
est fantastique.TabooReset
etTabooRename
bascule littéralement deux "modes" de la tabulation ==> un onglet nommé par Taboo , et un onglet nommé automatiquement par Vim. Cela reproduit parfaitement le " Windows nommé " de Tmux. Mieux encore, les onglets nommés sous Tabou peuvent être restaurés à l'aide de Startify (ou sous tout autre outil d'enregistrement de session).Pour gvim, voir
Définissez l'option sur une expression évaluée
t:mytablabel
(une variable tab-local) si elle existe, ou bien sur une chaîne vide (ce qui signifie utiliser la valeur par défaut):Peut-être que c'est déjà trop compliqué, ou peut-être que vous voulez devenir plus chic. Dans ce cas, définissez une fonction:
Ensuite, dans n'importe quel onglet où vous souhaitez remplacer la valeur par défaut, faites quelque chose comme
Si vous utilisez vim dans un terminal, pas gvim, vous devez définir l'
'tabline'
option au lieu de'guitablable'
. C'est un peu plus compliqué, car vous avez besoin d'une expression unique qui inclut des étiquettes pour tous les onglets ouverts. Il y a un exemple complet sousla source