Czy istnieje sposób na znalezienie wszystkich zastosowań metody w vimie? Używam vim jako IDE dla Railsów z rails.vim. ctags pomaga przejść do definicji metody z użycia, ale nie odwrotnie do AFAIK. Chciałbym móc znaleźć wszędzie (kontrolery, widoki itp.), Że zastosowano metodę.Znajdź wszystkie zastosowania metody w vim
Odpowiedz
W Vimie nie ma w tym celu żadnych doskonałych rozwiązań, ale można się zbliżyć do wersji cscope
i grep
lub ack
.
cscope
pomoże Ci znaleźć wszystkie odniesienia do symbolu. Jest on stworzony dla języków w językach C i C, ale przydaje się przyzwoicie do dopasowywania symboli w kodzie Ruby. To nie poprawi kontekstu przez cały czas.
Oto vim cscope tutorial i blog post about Ruby/Vim/cscope i another blog post, z których oba zawierają dodatkowe wskazówki dotyczące poruszania się po kodzie Ruby/Rails w Vimie.
Używanie grep
lub ack
z Vim z integracją quickfix to kolejny świetny sposób na znalezienie symboli. Nie mają pojęcia o zasięgu/kontekście, ale często wystarczy proste wyszukiwanie. Korzystanie tylko z wbudowanego polecenia :grep
, można zrobić:
:grep some_method app/controllers
:cwindow
i uzyskać wyniki wyszukiwania w oknie quickfix, która pozwoli Ci szybko przejść do plików dopasowywania i numery linii.
Znacznie lepszym rozwiązaniem jest wtyczka ack.vim, która integruje ack z Vimem i korzysta z okna quickfix.
Jeśli nie używasz jeszcze wtyczki do nawigacji w CTAGS, polecam Tagbar.
Napisałem gem właśnie do tego: https://rubygems.org/gems/starscope
Analizuje kodu Ruby prawidłowo i eksport do formatów plików ctags i cscope.
Na pewno to sprawdzę! – Adnan
Err .. Czy możesz dodać notatkę o wymaganiach dotyczących wersji Ruby do swojej strony github. Wygląda na to, że gwiazdor wysadza powietrze na 1.9.2 (potrzeby 1.9.3): \ – Adnan
Oczywiście, zrobię to wkrótce. Nie zdawałem sobie nawet sprawy, że nie będzie działać z wersjami, które były stare. – Evan
- 1. Znajdź wszystkie zastosowania metody (w tym za pośrednictwem interfejsu) za pomocą NDepend
- 2. Znajdź wszystkie metody specjalizacji danego typu.
- 3. PhpStorm znajduje wszystkie przestarzałe zastosowania w projekcie
- 4. Jak wyłączyć "Znajdź wszystkie" ReSharpera "
- 5. Znajdź wszystkie pliki w folderze
- 6. Znajdź wszystkie podklasy w dart
- 7. Znajdź i policz wszystkie w Sails.js + Waterline
- 8. Znajdź pierwszą niezgodną linię w VIM
- 9. Znajdź ścieżkę pliku wykonywalnego w vim
- 10. Szybkie "Znajdź w plikach" dla VIM?
- 11. szyn: Znajdź wszystkie warunki
- 12. Jakie są praktyczne zastosowania wzoru metody Factory?
- 13. Składnia dla zastosowania atrybutu do anonimowej metody?
- 14. Znajdź wszystkie węzły tekstowe
- 15. Znajdź niezaimplementowane metody klasy
- 16. Znajdź Czas wykonania metody
- 17. Silverlight: Znajdź wszystkie formanty typu w layoucie
- 18. Znajdź wszystkie zajęcia w pakiecie w Androidzie
- 19. Znajdź wszystkie formanty w formularzu przy użyciu jQuery lub javascript
- 20. Znajdź wszystkie krytyczne krawędzie MST
- 21. jak wybrać wszystkie i skopiować w vim?
- 22. Jak znaleźć wszystkie wystąpienia zmiennej w Vim?
- 23. Jak wyświetlić wszystkie zakładki w NERDTree VIM?
- 24. przekierowanie wyjścia polecenia "znajdź" do "vim"
- 25. Vim autouzupełnianie Szyny metody modelowe
- 26. Znajdź wszystkie submatrices danej matrycy
- 27. vim powtórzyć znajdź następny znak 'x'
- 28. Znajdź wszystkie odwołania do widoku
- 29. Intellij: Znajdź zastosowania, ale wykluczyć pliki testowe z wyników
- 30. Znajdź oryginalną implementację metody wirtualnej
Doskonały. Zdecydowanie wypróbuję je. grep, oczywiście, jest starym trybem gotowości, ale użyłem go samodzielnie (w innym oknie terminala). Zintegrowany z moim głównym edytorem nawet bez dużego kontekstu byłby o wiele lepszy. – Adnan
Pracuję nad własną konfiguracją do obsługi cscope w moich projektach Rails. Oto część [gist] (https://gist.github.com/fweep/5182260) z niektórymi. Zauważ, że jest to tylko część mojej konfiguracji i jest ściśle związana z moją konfiguracją Git, ale myślę, że może ci pomóc zacząć, jeśli chcesz wskoczyć z cscope; tam jest wystarczająco dużo informacji, aby utworzyć bazę danych 'cscope.out' i załadować/przeszukać ją w Vimie. Prawdopodobnie będziesz chciał zmienić niektóre nazwy ścieżek. Jeśli utworzę wtyczkę i/lub napiszę na jej temat post na blogu, tutaj skomentuję. –
Dzięki za link .. – Adnan