10
votes

Est-ce que Vim Editor est très intelligent?

Je suis programmée en C ++ ou Java. Je souhaite donc utiliser VIM Editor, car il est très flexible. J'ai entendu dire que je peux configurer l'éditeur VIM pour pouvoir aller

  1. de l'objet à la définition
  2. de fonction à la définition
  3. du nom de la classe à la définition

    Avons-nous un vim-er professionnel qui pourrait me dire exactement comment configurer Vim pour cela? Merci d'avance.

    P.s. Dans le cas où les lecteurs examineront cette question ne sont pas liés à la programmation, je dirais que cela améliore la vitesse de la programmation. Donc, c'est une aide au programmeur. Alors s'il vous plaît ne fermez pas cette question.

    Edit: J'aimerais aussi savoir comment Vim fonctionne avec le code d'achèvement du code et peut indiquer la liste des méthodes disponibles pour le certain objet? Si oui, j'aimerais savoir comment configurer ces options aussi?


0 commentaires

8 Réponses :


12
votes

Ce que vous recherchez, ce sont des fichiers CTAGS et Tags / Tags. CTAGS (je recommande Exuberant CTAGS) est un programme qui analyse les fichiers source des identifiants et crée un fichier indexé. Vous pouvez ensuite utiliser ^] pour passer à la définition de la balise sous le curseur.

Il peut y avoir des détails supplémentaires nécessaires pour indiquer à VIM comment trouver le fichier Tags; Je ne suis pas sûr de loin ce qu'ils sont. Mais c'est l'idée générale - exécutez CTAGS sur votre code source, puis utilisez ^].

Alternativement, vous voudrez peut-être regarder GNU Global. C'est un peu plus sophistiqué. Mais CTAG accomplira ce que vous avez décrit.


1 commentaires

Pour révéler Vim où le fichier Tags est, utilisez l'option Tags. Tapez ": Aide" Tags '"dans Vim pour plus de détails.



1
votes

Code-Conclusion dans VIM est disponible en tant que vim-scripts: http: //www.vim .org / scripts / index.php


1 commentaires

Avec la version 7.0 et UP, vous pouvez compléter des noms et des lignes de code de code dans le mode Insérer en utilisant des combinaisons de frappes telles que CTRL-P, CTRL-N et CTRL-X-CTRL-L. L'aide en ligne a tous les détails.



-1
votes

Oui, l'outil qui fournit cet index de symboles s'appelle CTAGS et de nombreux éditeurs UNIX peuvent l'utiliser. Vim est agréable sur la ligne de commande, mais je suggère de dépenser un peu de temps à s'habituer à Kate. C'est un très joli éditeur d'interface graphique moderne, avec la navigation de fichier IDE-like, une bonne sélection de syntaxe, le plus dynamique dynamique que j'ai jamais utilisé, etc. Pour Java, Eclipse et Netbeans valent probablement un look.


0 commentaires

2
votes

Vim est sans ombre d'un doute, le meilleur éditeur du monde (viens me chercher des gars d'emacs). La guerre de flamme de côté, ce que j'ai trouvé incroyablement utile pour la programmation C ++ et Java est Eclipse (Meilleur IDE au monde, oui maintenant je pique des Netbeans) avec le plug-in VRAPPER. Vous bénéficiez de tous les avantages d'un environnement de développement entièrement intégré et de la puissance des raccourcis de clavier VIM.

VRAPPER ne vous donne pas une émulation complète Vim, mais vous pouvez faire rebondir votre code à l'aide de raccourcis VIM et vous ne perdez aucune de la bonté d'Eclipse.


1 commentaires

C'est en fait pour diverses valeurs de «monde» mais je vois votre point!



1
votes

CTAGS en général est la réponse, comme dit Michael E. dit. CTAGS * .C * .H est un démarrage simple pour un projet contenant tous les fichiers dans un répertoire. Ensuite, comme l'a dit Michael, vous pouvez utiliser ^] pour aller à la définition et ^ t pour revenir à votre retour. Ce sont les mêmes clés que vous utilisez pour vous déplacer dans l'aide de Vim.

en Java et C ++, vous pouvez avoir plus d'une méthode avec le même nom. : TN ira au suivant et : TS listera les alternatives.

Pour la fin du code dans Vim, j'utilise habituellement ^ p et ^ n. Ce n'est pas sensible au contexte comme l'équivalent dans Eclipse ou MSVC, mais cela fait habituellement le travail.

D'autres outils que vous pourriez envisager d'utiliser sont cscope et (bien sûr) emacs ou éclipse.


0 commentaires

1
votes

Comme d'autres les ont dit, vous devez générer un fichier d'index pour VI (M).

Je veux juste dire qu'à utiliser Vim pour la programmation Java au lieu d'une IDE moderne, c'est comme utiliser Vim plus une calculatrice au lieu d'une feuille de calcul pour chiffres. Les deux sont corrects pour les petites tâches, mais lors de la mise à l'échelle, vous atteignez un point où la feuille de calcul quitte simplement l'éditeur de texte.

Si vous faites une programmation Java pour gagner sa vie, faites-la et votre employeur une faveur et apprenez à utiliser un outil électrique.


2 commentaires

VIM 7.2 prend en charge les numéros de points flottants, il n'y a donc pas besoin d'une calculatrice :)


Intrigant. Je ne peux tout simplement pas deviner ce que l'éditeur a besoin de chiffres de points flottants pour, alors peut-être que cela ne représente peut-être qu'un pas de plus pour avoir une adhérence ad hoc, spécifiée de manière informelle, une mise en œuvre lente de la moitié de la LISP commune?



2
votes

Utiliser CTAGS est définitivement le lieu de démarrage, mais n'oubliez pas cscope. Dans les deux cas, vous avez d'abord que CSCOPE et CTAG scannent vos fichiers source et créent leurs bases de données avant de démarrer VIM. Vous devez également vous rafraîchir occasionnellement les bases de données lorsque votre code augmente et change.

avec CTAGS, utilisez simplement la commande " CTAGS " dans votre répertoire de code. Si vous avez une héritière de répertoires, commencez en haut et utilisez « CTAGS -R " pour recueillir tous les répertoires ci-dessous. Démarrez Vim dans le même répertoire que le fichier de balises résultant et VIM doit le trouver et le charger automatiquement. Lorsque vous êtes dans l'éditeur avec le curseur sur une fonction ou un nom de variable, vous pouvez taper '^]' et VIM devrait passer à la définition.

De même, avec cscope, utilisez " cscope -b " ou " cscope -b -r " pour obtenir des informations plus détaillées sur la balise. VIM et CSCOPE travaillent ensemble pour vous donner beaucoup plus d'informations telles que l'utilisation d'un identifiant et d'où une fonction est appelée une fonction. Il existe un ensemble de macros pouvant être utilisés pour accéder aux informations. Vous pouvez trouver les macros et leurs significations dans les informations d'aide VIM CSCOPE.


0 commentaires

2
votes

La dernière fois que j'ai vérifié, il y a longtemps, ctags était correct, mais il a manqué quelques identifiants et cscope avait une option de recherche plus exhaustive, mais encore manqué Quelques identifiants.

grep est ce que je préfère. C'est exhaustif mais toujours assez rapide si la base de code source est une taille raisonnable ou que le PC est rapide. Vous pouvez l'appeler à partir vim avec : grep . Voici une version simplifiée de mon propre _vimrc pour montrer comment je l'ai configuré. Je mets des commentaires pour expliquer quelles clés font quoi. xxx

aussi, n'oubliez pas * (shift-8) et # < / Code> (Shift-3) Pour rechercher en avant et en arrière pour l'identifiant actuel sous le curseur dans le fichier actuel. J'ai découvert ces inestimables lors de la prise de vue via le code, en particulier lorsque vous recherchez des noms de variables courts tels que «I» et «J» qui correspondraient autrement parties d'autres noms de variable dans une recherche aveugle dans un éditeur de texte classique.

Vous pouvez également appeler : faire à partir de vim si vous souhaitez utiliser faire . Il s'arrêtera sur la première erreur de compilation, puis vous pouvez modifier et démarrer la construction à partir de l'intérieur vim .

Une fois que vous êtes à l'aise de définir vos propres fonctions et mappages clés, il y a Beaucoup de façons de faciliter la tâche de programmation répétitive avec vim .


0 commentaires