2009-03-18 25 views
17

vim + ctags hoạt động tốt cho các dự án C, vì C không cho phép quá tải chức năng và nói chung khuyến khích sử dụng tiền tố thủ công do cơ sở phạm vi thô sơ.vim, ctags và các mã định danh có tên giống nhau

Trong C++, các hàm thường bị quá tải và được ghi đè trong các lớp con. Điều này làm cho vim luôn nhảy vào thẻ trong lớp sai trên "Ctrl + ]". Có cách nào để làm cho nó hoạt động thông minh hơn một chút không? Tôi biết tôi có thể mang theo một danh sách với các lựa chọn thay thế thẻ, nhưng điều đó thật khó chịu khi phải đưa ra danh sách này và tìm một thẻ cần thiết theo số bất cứ khi nào tôi muốn chuyển sang định nghĩa.

+0

Rất thích nhìn thấy một giải pháp hữu ích cho vấn đề này. Tôi ít bị ảnh hưởng bởi điều này bây giờ tôi sử dụng Viemu nhiều hơn và nhiều hơn nữa, nhưng nó vẫn được tôi khi tôi chuyển sang các dự án không VC. – RedBlueThing

+0

Câu hỏi hay, tôi cũng muốn biết câu trả lời cho điều này. – Dan

Trả lời

12

Ngoài ra còn có "tagNext" để chuyển sang thẻ kế tiếp (hoặc: tn < nhập >)

6

Tôi biết hai cách giải quyết cho porblem của bạn (có vẻ như bạn biết điều đó quá):

  • Sử dụng: tselect và thẻ tên hoặc g] với con trỏ trên thẻ để lấy danh sách các thẻ phù hợp và goto trên thẻ theo số từ danh sách;
  • bản đồ: tnext hoặc: tprev trên phím nóng (tôi đã ánh xạ trên F6 và F7) và tìm thấy chức năng thủ công cần thiết;
5

Bạn có thể sử dụng kịch bản của tôi sẽ giúp bạn chọn thẻ bạn cần bằng cách gõ một số chữ cái của tên lớp hoặc thẻ đặc biệt như 'lĩnh vực', 'chức năng', 'constructor', vv

http://www.vim.org/scripts/script.php?script_id=2507

8

Tôi sử dụng tjump rất nhiều. Nó hỗ trợ hoàn thành tab đó là hữu ích. Nếu tìm thấy nhiều thẻ, nó sẽ cung cấp một danh sách để bạn chọn, nếu chỉ có một thẻ được tìm thấy, nó sẽ chuyển ngay đến thẻ (không giống như tselect).

Cách sử dụng:

:tj foo 
Các vấn đề liên quan