2013-03-17 10 views
6

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

7

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.

+0

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

+0

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ę. –

+0

Dzięki za link .. – Adnan

5

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.

+0

Na pewno to sprawdzę! – Adnan

+0

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

+0

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

Powiązane problemy