2010-09-20 10 views
5

Sur Railcasts, j'ai remarqué une caractéristique très intéressante 'Aller au symbole'. Il fonctionne comme Command-T mais affiche les classes et méthodes disponibles dans le fichier courant. Comment l'obtenir en vim?Textmate 'Va au symbole' équivalent pour Vim

Répondre

5

Essayez

:help tags 

Il existe divers programmes et scripts autour qui généreront des fichiers de balises. En outre, le format du fichier de tag est très simple, donc il est facile de lancer un sed(1) ou un script qui va générer un fichier de balise à partir de n'importe quelle langue.

La clé pour obtenir facilement un fichier de balise (en plus juste en téléchargeant un générateur) est à la clé sur le style de mise en forme plutôt que d'analyser la syntaxe.

1

Essayez le plugin Command-T VIM.

Le plug-in Command-T pour VIM fournit un mécanisme extrêmement rapide, intuitif pour l'ouverture des fichiers avec un nombre minimal de touches. Il est nommé "Command-T" car il est inspiré de la fenêtre "Aller au fichier" liée à Command-T dans TextMate.

Les fichiers sont sélectionnés en tapant caractères qui apparaissent dans leurs chemins, et sont commandés par un algorithme qui sait que les caractères qui apparaissent dans certains endroits (par exemple, immédiatement après un séparateur de chemin) doivent être donnés plus de poids.

Ou vous aimerez aussi PeepOpen.

PeepOpen est une application de navigation de fichiers qui fonctionne avec TextMate, Coda, MacVim et Emacs (Mac OS X Snow Leopard 64 bits Intel requis, support pour d'autres éditeurs arrive bientôt ). Rechercher sur les deux chemins et noms de fichiers, et facilement ouvrir le fichier dans votre éditeur de texte avec une seule touche . Métadonnées utiles vous aide rapidement choisir le fichier que vous cherchez pour.

+1

Ces suggestions sont pour l'ouverture rapide de fichiers, pas "Aller au symbole" comme les questions le demandent. Cependant, Command-T - comme CtrlP comme le suggère Josef Schmitz - a aussi une fonction de recherche d'étiquette floue (': CommandTTag'). C'est plutôt lent, cependant. – ches

3

De plus, cela vaut la peine d'ajouter des ctags exubérants au mélange http://ctags.sourceforge.net/. Cela va analyser des charges de langages, y compris ruby ​​et générer votre fichier de balises pour vous et vous sauver du bit sed.

ctags -R 

Fait l'affaire. Voir aussi l'excellent plugin tagList pour une barre latérale affichant tous les tags dans les tampons actuellement ouverts:

http://vim-taglist.sourceforge.net/

4

La version de ctags qui est pré-installé sur chaque OS X 10.6 (Snow Leopard) l'installation dates 1993 .

Téléchargez, compilez et installez la dernière version de http://ctags.sourceforge.net/.Cela évitera beaucoup de maux de tête inutiles (comme la version 1993 ne prend pas en charge la syntaxe Java, car Java n'a pas encore été inventé.)

Après l'installation, utilisez la commande ctags -R * pour parcourir de manière récursive votre source codez et créez un fichier de tags (par défaut nommé tags) dans votre répertoire de travail actuel.

VIM analysera ce fichier de balises. Déplacez le curseur sur un appel de fonction/méthode, appuyez sur <Ctrl> + ] et VIM ouvre le fichier contenant la méthode/corps de la fonction correspondant au texte sous le curseur. Pour retourner au fichier précédent, appuyez sur <Ctrl> + t et VIM échange sa mémoire tampon actuelle contre le fichier à partir duquel vous avez sauté. Tout comme DigitalRoss suggéré, lire la documentation d'aide intégrée de VIM vous donnera une meilleure compréhension de la puissance des ctags. Utilisez cette commande pour lire la documentation:

:help tags 
5

Il y a un plugin vim appelé CtrlP se trouve sur Github qui fournit entre autres la commande :CtrlPBufTag. Il permettra la recherche floue à travers les balises associées au fichier du tampon courant. Exactement comme la fonction 'aller au symbole' dans Textmate. Vous devrez installer des ctags exubérants et probablement quelque chose d'utile comme le plugin vim taglist, également disponible sur Github. Ce qui est génial avec le plugin CtrlP, c'est qu'il permet la recherche floue de fichiers, tampons, balises dans tout le projet (y compris les bibliothèques, si vous les étiez aussi) et seulement les balises dans votre tampon actuellement ouvert.

Références:

Questions connexes