Je travaille dans Vim avec beaucoup de tampons ouverts dans différentes fenêtres sur différents onglets. Je sais qu'il est simple de simplement charger l'un des tampons existants dans ma fenêtre actuelle. Cependant, certains de mes tampons pour les fichiers volumineux utilisent des expressions de pliage qui provoquent un retard de plusieurs secondes lors du chargement dans une nouvelle fenêtre. D'un autre côté, s'ils sont déjà ouverts dans une fenêtre sur une page à onglets, j'ai juste besoin de sauter dans cette page à onglets et cette fenêtre.Comment passer à un tampon non caché qui existe dans une fenêtre sur un onglet?
Je suppose qu'il n'y a pas de commande pour le faire directement. Ou est-ce?
Pour trouver la fenêtre avec le tampon souhaité que je pourrais écrire une fonction qui fait cela:
- pour chaque onglet
- pour chaque fenêtre de chaque onglet
- vérifier chaque fenêtre pour voir si elle a mon souhaité tampon chargé
- déplacer le curseur à la fenêtre trouvée ou tampon ouvert dans la fenêtre sur un nouvel onglet sinon trouvé
quelqu'un at-il déjà écrit ceci? Ou ai-je manqué une façon plus simple d'obtenir ce que je veux? MISE À JOUR: Les réponses 'switchbuf' correspondaient exactement à ce que je cherchais, mais je pourrais quand même utiliser une fonction personnalisée parce que (1) je ne comprenais pas le comportement de l'option 'newtab', car les fenêtres étaient toujours Split, et (2) ma fonction recherche pour les fichiers accueille à vide:
function! Sbuf(filename)
let myvar = ''
tabdo let myvar = bufwinnr(a:filename) > 0 ? tabpagenr()
\ . ' ' . bufwinnr(a:filename) : myvar
if myvar > ''
silent execute split(myvar)[0] . "tabn"
silent execute split(myvar)[1] . "wincmd w"
else
execute 'tab drop ' . a:filename
endif
endfunction