9 votes

Comment utiliser ctags et vim pour sauter aux méthodes Java

Cela fonctionnait avant que je mette à niveau mon système Ubuntu :

ctags *.java
vim -t fooFunc

Ce qui me conduisait alors par exemple à Foo.fooFunc()

Mais maintenant, vim affiche la page standard "tag not found".

Je dois maintenant faire :

vim -t Foo.fooFunc()

Pour que cela fonctionne correctement.

Plus important, ^] ne fonctionne plus du tout.

En regardant le fichier tags généré, je vois des entrées comme :

Foo.fooFunc Foo.java  /^    private void fooFunc() {$/

Alors que le fichier tags généré par une version plus ancienne de ctags aurait ressemblé à :

fooFunc Foo.java  /^    private void fooFunc() {$/

il semble que ctags est maintenant cassé.

Y a-t-il un moyen de revenir au comportement précédent ? Ou de faire en sorte que vim respecte le nouveau format ?

3voto

Kris Welsh Points 350

Je utilise Universal Ctags avec la commande

ctags --languages=java -R ./src

J'étais confus au début parce qu'une version différente de ctags est préinstallée sur osx. Il s'avère que j'ai dû d'abord la remplacer par universal-ctags

brew install --HEAD universal-ctags/universal-ctags/universal-ctags

1voto

Rohit Banga Points 3122

Je utilise Exuberant Ctags 5.8 et exécute le script suivant pour générer un fichier tags pour mon répertoire java :

#!/bin/bash
# remettre à zéro tout fichier de tags généré précédemment
# une autre façon d'y parvenir est en faisant `> tags`
truncate --size 0 tags 
find . -name \*.java -exec ctags --append {} \;

Je utilise find et --append parce qu'il y a plus de 1000 fichiers .java dans le répertoire.

Aucun problème avec VIM - Vi IMproved 8.0.

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