Gibt es eine Möglichkeit, alle Verwendungen einer Methode in vim zu finden? Ich benutze vim als eine IDE für Rails mit rails.vim. Ctags hilft, zu einer Methodendefinition von der Verwendung zu springen, aber nicht umgekehrt AFAIK. Ich möchte überall (Controller, Ansichten usw.) finden können, dass eine Methode verwendet wurde.Hier finden Sie alle Verwendungen einer Methode in vim
Antwort
Es gibt keine perfekte Lösung dafür in Vim, aber Sie können mit cscope
und grep
oder ack
nah kommen.
cscope
wird Ihnen helfen, alle Verweise auf ein Symbol zu finden. Es ist für C- und C-ähnliche Sprachen gedacht, aber es macht auch einen anständigen Job, Symbole in Ruby-Code abzustimmen. Es wird den Kontext nicht immer richtig machen.
Hier sind ein vim cscope tutorial und ein blog post about Ruby/Vim/cscope, und another blog post, die beide zusätzliche Tipps zum Navigieren von Ruby/Rails-Code in Vim enthalten.
Die Verwendung von grep
oder ack
von Vim mit Quickfix-Integration ist eine weitere gute Möglichkeit, Symbole zu finden. Sie haben keine Ahnung von Umfang/Kontext, aber oft genügt eine einfache Suche. Mit dem nur :grep
Befehl eingebaut, können Sie tun:
:grep some_method app/controllers
:cwindow
Und die Ergebnisse der Suche in dem quickfix Fenster erhalten, mit dem Sie schnell erlaubt, mit den entsprechenden Dateien und Zeilennummern zu navigieren.
Eine viel bessere Option ist das ack.vim Plugin, das ack mit Vim integriert und das Quickfix-Fenster nutzt.
Wenn Sie nicht bereits ein Plugin zum Navigieren von CTAGS verwenden, empfehle ich Tagbar.
schrieb ich ein Juwel, genau das zu tun: https://rubygems.org/gems/starscope
Es Ruby-Code richtig und Exporte in ctags und cscope Dateiformate analysiert.
Ich werde es auf jeden Fall überprüfen! – Adnan
Err .. Können Sie bitte eine Notiz über die Ruby-Versionsanforderung zu Ihrer GitHub-Seite hinzufügen. Anscheinend explodiert das Sternskop auf 1.9.2 (braucht 1.9.3): \ – Adnan
Sicher, ich werde das in Kürze tun. Ich wusste nicht einmal, dass es mit älteren Versionen nicht funktionieren würde. – Evan
- 1. Hier finden Sie alle abhängigen Maven Projekte
- 2. Alle Verwendungen einer Methode ersetzen (Einführung der Indirektion)
- 3. Hier finden Sie Informationen in einer Tabelle
- 4. Visual Studio Verwendungen einer CSS-Klasse finden
- 5. Javascript regex: Hier finden Sie alle URLs Optimierung
- 6. Hier finden Sie alle String "der" in TXT-Datei
- 7. Java IDE - Finden Sie alle INDIREKTEN Verwendungen/Referenzen einer Funktion oder Klasse?
- 8. Hier finden Sie einfach C-Standardfunktionsprototypen
- 9. .NET - Finden Sie alle Referenzen der Eigentumszuweisung
- 10. Javascript: Hier finden Sie Sonderzeichen in String
- 11. PyCharm: Liste alle Verwendungen aller Methoden einer Klasse
- 12. .NET Reflection: Hier finden Sie gebrauchte Typen
- 13. Hier finden Sie eine Liste über Reflexion
- 14. Was sind alle Verwendungen von '@' in C#?
- 15. Wie verwendet man C#, um Verwendungen einer Klasse oder Methode zu finden?
- 16. So finden Sie '-s' in einer vim Suche
- 17. Hier finden Sie Details von einer anderen MySQL-Tabelle
- 18. PhpStorm finde alle veralteten Verwendungen im Projekt
- 19. IntelliJ Ultimate 14 finden Verwendungen nicht funktioniert
- 20. Finden Sie alle URLs in einer Zeichenfolge in Rails 3
- 21. Leistungsengpass in einer Methode finden
- 22. Angularjs: Finden Sie alle Instanzen einer Direktive
- 23. Finden Sie alle Submatrizen einer gegebenen Matrix
- 24. PHP Finden Sie alle Vorkommen einer Teilzeichenfolge in einer Zeichenfolge
- 25. Hier finden Sie eine Liste von Personen IN
- 26. Powershell: Hier finden Sie Zahlen in Namen Ordner
- 27. Finden Sie alle Referenzen einer DLL in einem Projekt
- 28. Finden Sie alle Indizes eines Elements in einer Groovy-Liste
- 29. Vim-Befehl löschen Sie alle ausgewählten Linien
- 30. Finden Sie alle Verzeichnisse in einem Verzeichnis
Ausgezeichnet. Ich werde das definitiv ausprobieren. grep ist natürlich eine alte Standby-Version, aber ich habe sie stand-alone (in einem anderen Terminal-Fenster) benutzt. Integriert in meinen Hauptredakteur wäre auch ohne viel Kontext viel besser. – Adnan
Ich arbeite an meiner eigenen Konfiguration für den Umgang mit cscope in meinen Rails-Projekten. Hier ist ein [gist] (https://gist.github.com/fweep/5182260) mit etwas davon. Beachten Sie, dass es nur ein Teil meiner Konfiguration ist und eng mit meinem Git-Setup verbunden ist, aber ich denke, es könnte Ihnen helfen, loszulegen, wenn Sie mit cscope einsteigen möchten; Dort gibt es genügend Informationen, um eine 'cscope.out' Datenbank zu erstellen und sie in Vim zu laden/durchsuchen. Wahrscheinlich möchten Sie einige der Pfadnamen ändern. Wenn ich es zu einem Plugin mache und/oder einen Blogpost darüber schreibe, werde ich hier kommentieren. –
Danke für den Link .. – Adnan