Avoir VIM sauté à un ctag dans un onglet existant


6

J'ai des ctags configurés avec mon installation de vim. Mon habitude est d’avoir tous les fichiers pertinents sur lesquels je travaille en train d’être ouverts en même temps dans les onglets de vim. Le "problème" est que si j'utilise Ctrl +] pour aller à un ctag dans un fichier que je suis en train de modifier, cela remplacera le tampon dans cet onglet, même si un autre onglet contenant ce symbole est déjà ouvert. Ce serait bien mieux si vous passiez simplement à cet onglet et sautiez au symbole à la place. De cette façon, j'aurais toujours un rapport de tabulation à fichier de 1 à 1.

J'ai remarqué dans les Changenotes pour le taglist.vim Le plugin (que j'utilise aussi) a une entrée qui dit

1. Added support for jumping to a tag/file in a new or existing tab 
   from the taglist window (works only with Vim7 and above). 

Cependant, je n'ai rien trouvé dans la documentation de Taglist (ou Ctags) sur la manière de le faire.

Des gourous Vim peuvent-ils me renseigner? Merci!

Réponses:


2

Vous pouvez le faire avec :tab tag NAME_OF_TAG, mais cela ne correspond à rien. Vous pouvez remapper <Ctrl-]> pour le faire comme suit dans votre fichier .vimrc:

:nmap <c-]> :tab tag <c-r><c-w><cr>

<c-r><c-w> va saisir le mot sous le curseur et <cr> est la dernière entrée / retour chariot pour exécuter la commande.

EDIT: oh non, j'ai relu la question. Cela ouvrira une Nouveau onglet à chaque fois, ça craint !!

Selon la page d'aide de la balise:

Le tableau suivant répertorie les   description des clés pouvant être   utilisé dans la fenêtre de liste de balises.

t Aller à la balise dans un nouveau   languette. Si le fichier est déjà                   ouvert dans un onglet, déplacez-vous vers cet onglet.

Et effectivement pressant t fait cela dans le volet des listes de balises, mais cela signifie que la balise doit déjà être visible dans le volet. Et cela aussi est un peu boiteux ...

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.