2013-03-17 21 views
6

Có cách nào để tìm mọi cách sử dụng phương pháp trong vim không? Tôi đang sử dụng vim như một IDE cho Rails với rails.vim. ctags giúp chuyển sang định nghĩa phương thức từ cách sử dụng nhưng không phải là cách khác AFAIK tròn. Tôi muốn để có thể tìm thấy ở khắp mọi nơi (bộ điều khiển, xem vv) mà một phương pháp đã được sử dụng.Tìm mọi cách sử dụng phương pháp trong vim

Trả lời

7

Không có giải pháp hoàn hảo nào cho điều này trong Vim, nhưng bạn có thể đến gần với cscopegrep hoặc ack.

cscope sẽ giúp bạn tìm tất cả các tham chiếu đến biểu tượng. Nó được tạo ra cho các ngôn ngữ C và C, nhưng nó cũng phù hợp với các ký hiệu phù hợp trong mã Ruby. Nó sẽ không nhận được bối cảnh đúng lúc.

Dưới đây là vim cscope tutorialblog post about Ruby/Vim/cscopeanother blog post, cả hai đều bao gồm các mẹo bổ sung về điều hướng mã Ruby/Rails trong Vim.

Sử dụng grep hoặc ack từ Vim với tích hợp nhanh là một cách tuyệt vời để tìm biểu tượng. Họ không có khái niệm về phạm vi/ngữ cảnh, nhưng thường là một tìm kiếm đơn giản là đủ. Chỉ sử dụng được xây dựng trong :grep lệnh, bạn có thể làm:

:grep some_method app/controllers 
:cwindow 

Và có được kết quả của việc tìm kiếm trong cửa sổ QuickFix, mà sẽ cho phép bạn nhanh chóng điều hướng đến các tập tin phù hợp và số dòng.

Một tùy chọn tốt hơn là plugin ack.vim, tích hợp ack với Vim và sử dụng cửa sổ quickfix.

Nếu bạn chưa sử dụng plugin để điều hướng CTAGS, tôi khuyên bạn nên Tagbar.

+0

Tuyệt vời. Tôi chắc chắn sẽ thử những điều này. grep, tất nhiên, là một chế độ chờ cũ nhưng tôi đã từng sử dụng nó độc lập (trên một cửa sổ đầu cuối khác). Tích hợp vào trình soạn thảo chính của tôi ngay cả khi không có nhiều bối cảnh sẽ tốt hơn rất nhiều. – Adnan

+0

Tôi đang làm việc trên cấu hình của riêng mình để xử lý cscope trong các dự án Rails của tôi. Đây là một [gist] (https://gist.github.com/fweep/5182260) với một số của nó. Lưu ý rằng nó chỉ là một số cấu hình của tôi, và được kết hợp chặt chẽ với thiết lập Git của tôi, nhưng tôi nghĩ rằng nó có thể giúp bạn bắt đầu nếu bạn muốn nhảy vào với cscope; có đủ thông tin để tạo cơ sở dữ liệu 'cscope.out' và tải/tìm kiếm nó trong Vim. Có thể bạn sẽ muốn thay đổi một số tên đường dẫn. Nếu tôi làm cho nó thành một plugin và/hoặc viết một bài đăng blog về nó, tôi sẽ bình luận ở đây. –

+0

Cảm ơn các liên kết .. – Adnan

5

tôi đã viết một viên ngọc để làm điều đó: https://rubygems.org/gems/starscope

Nó phân tích mã ruby ​​đúng cách và xuất khẩu sang ctags và các định dạng tập tin cscope.

+0

Tôi chắc chắn sẽ kiểm tra xem nó ra! – Adnan

+0

Err .. Bạn có thể thêm một lưu ý về yêu cầu phiên bản Ruby vào trang github của bạn không. Rõ ràng, kính viễn vọng thổi lên trên 1.9.2 (cần 1.9.3): \ – Adnan

+0

Chắc chắn, tôi sẽ làm điều đó ngay. Tôi thậm chí không nhận ra nó sẽ không hoạt động với các phiên bản cũ. – Evan

Các vấn đề liên quan