6 votes

Faire en sorte que le VIM saute à un ctag dans un onglet existant

J'ai des ctags configurés avec mon installation de vim. J'ai l'habitude d'avoir tous les fichiers pertinents sur lesquels je travaille ouverts dans des onglets dans vim en même temps. Le "problème" est que si j'utilise Ctrl+] pour passer à un ctag dans un fichier que je suis en train d'éditer, il remplacera le tampon dans cet onglet, même si j'ai un autre onglet déjà ouvert contenant ce symbole. Il serait préférable de passer simplement à cet onglet et d'accéder au symbole qui s'y trouve. De cette façon, le ratio onglet/fichier serait toujours de 1 pour 1.

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

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 procéder.

Un gourou de Vim peut-il me renseigner ? Merci !

2voto

Gordon Gustafson Points 5496

Vous pouvez le faire avec :tab tag NAME_OF_TAG mais il n'est pas relié à quoi que ce soit. Vous pourriez remapper <Ctrl-]> pour le faire comme suit dans votre fichier .vimrc :

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

<c-r><c-w> saisira 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 un nouveau onglet à chaque fois, ce qui craint !

Selon la page d'aide de taglist :

Le tableau suivant énumère les description des clés qui peuvent être utilisées dans la fenêtre de la liste de balises.

t Sauter à la balise dans une nouvelle onglet. Si le fichier est déjà ouvert dans un onglet, passez à cet onglet.

Et en effet, presser t dans le panneau de la liste des tags permet de le faire, mais cela signifie que le tag doit déjà être visible dans le panneau de la liste des tags. Et ça aussi, c'est un peu nul...

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X