2010-09-20 23 views
5

Trên các đài phát thanh, tôi đã nhận thấy một tính năng rất thú vị 'Đi đến biểu tượng' cửa sổ. Nó hoạt động như Command-T nhưng hiển thị các lớp và phương thức có sẵn trong tệp hiện tại. Làm thế nào để có được nó trong vim?Textmate 'Go to symbol' tương đương với Vim

Trả lời

5

Hãy thử

:help tags 

Có những chương trình khác nhau và các kịch bản xung quanh mà sẽ tạo ra file thẻ. Ngoài ra, định dạng tệp thẻ thực sự đơn giản, do đó, việc dễ dàng kết hợp với nhau sed(1) hoặc một số tập lệnh như vậy sẽ tạo tệp thẻ từ bất kỳ ngôn ngữ nào bạn đang làm việc.

Chìa khóa để dễ dàng nhận tệp thẻ (bên cạnh chỉ cần tải về một máy phát điện) là chìa khóa trên định dạng phong cách hơn là cú pháp phân tích cú pháp thực sự.

1

Thử plugin Command-T VIM.

Plug-in Command-T cho VIM cung cấp cực kỳ nhanh chóng, cơ chế trực quan để mở file với một số tối thiểu của các tổ hợp phím. Nó được đặt tên là "Command-T" vì nó được lấy cảm hứng từ cửa sổ "Đi tới tệp" được liên kết với Lệnh-T trong TextMate.

tập tin được lựa chọn bằng cách gõ nhân vật xuất hiện trong đường đi của họ, và được sắp xếp theo một thuật toán mà biết rằng nhân vật xuất hiện trong địa điểm nhất định (ví dụ, ngay sau khi một tách đường dẫn) nên được trao trọng lượng hơn.

Hoặc bạn cũng có thể thích PeepOpen.

PeepOpen là một file hướng ứng dụng làm việc với TextMate, Coda, MacVim, và Emacs (Mac OS X Snow Leopard trên 64-bit Intel yêu cầu, hỗ trợ cho biên tập viên khác đang đến sớm). Tìm kiếm trên cả hai đường dẫn và tên tệp và dễ dàng mở tệp trong trình chỉnh sửa văn bản của bạn bằng một lần nhấn . Siêu dữ liệu hữu ích giúp bạn nhanh chóng chọn tệp bạn đang tìm kiếm cho.

+1

Những đề nghị này để mở tập tin nhanh chóng, không phải "Đi đến Symbol" như những câu hỏi hỏi. Tuy nhiên, Command-T - như CtrlP như Josef Schmitz gợi ý - cũng có chức năng tìm kiếm thẻ mờ (': CommandTTag'). Mặc dù nó khá chậm. – ches

3

Ngoài ra, bạn nên thêm ctags exuberant vào hỗn hợp http://ctags.sourceforge.net/. Điều này sẽ phân tích cú pháp tải các ngôn ngữ bao gồm ruby ​​và tạo tệp thẻ cho bạn và giúp bạn tiết kiệm từ bit sed.

ctags -R 

Sẽ thực hiện thủ thuật. Xem thêm các plugin taglist tuyệt vời cho một sidebar danh sách tất cả các thẻ trong bộ đệm hiện đang mở:

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

4

Các phiên bản của ctags mà được cài sẵn trên tất cả các OS X 10.6 (Snow Leopard) cài đặt ngày 1993 .

Tải xuống, biên dịch và cài đặt phiên bản mới nhất từ ​​http://ctags.sourceforge.net/.Điều này sẽ tiết kiệm nhiều đau đầu không cần thiết (như phiên bản 1993 không hỗ trợ cú pháp Java, vì Java chưa được phát minh. Điều này cũng tương tự đối với nhiều ngôn ngữ mới hơn.)

Sau khi cài đặt, sử dụng lệnh ctags -R * đệ quy làm việc thông qua nguồn của bạn mã và tạo tệp thẻ (theo mặc định có tên là tags) trong thư mục làm việc hiện tại của bạn.

VIM sẽ phân tích cú pháp tệp thẻ này. Di chuyển con trỏ qua một cuộc gọi hàm/phương thức, nhấn <Ctrl> + ] và VIM mở tệp chứa nội dung phương thức/chức năng khớp với văn bản bên dưới con trỏ. Để quay trở lại tập tin trước đó, bấm <Ctrl> + t và VIM hoán đổi bộ đệm hiện tại của nó thành tệp mà chúng tôi đã nhảy từ đầu.

Cũng giống như DigitalRoss được đề xuất, đọc tài liệu trợ giúp được tích hợp sẵn của VIM sẽ cung cấp cho bạn thông tin chi tiết hơn về cách ctags mạnh mẽ. Sử dụng lệnh này để đọc tài liệu:

:help tags 
5

Có một plugin vim gọi CtrlP được tìm thấy trên Github cung cấp số những người khác lệnh :CtrlPBufTag. Nó sẽ cho phép tìm kiếm mờ thông qua Thẻ được liên kết với tệp của bộ đệm hiện tại. Chính xác như chức năng 'go to symbol' trong Textmate. Bạn sẽ phải cài đặt ctags cởi mở và có thể là một cái gì đó hữu ích như plugin plugin vim, cũng có sẵn trên Github.

Điều tuyệt vời về plugin CtrlP là nó cung cấp tìm kiếm tệp, bộ đệm, thẻ trong toàn bộ dự án (bao gồm thư viện, nếu bạn gắn thẻ) và chỉ các thẻ trong bộ đệm hiện đang mở của bạn.

Tài liệu tham khảo:

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