2012-08-26 31 views
17

Có chức năng gốc trong Vim cho phép một chuyển con trỏ đến đầu/cuối của phương pháp tiếp theo không? Tôi đã biết về [[, ]], []][, nhưng chúng không cắt công việc, bởi vì chúng chỉ hoạt động trên niềng răng nằm trong cột số không. Do đó, chúng ít được sử dụng trong việc điều hướng mã C++. Có một lệnh như vậy đã được xây dựng vào Vim? Nếu không, bạn có muốn giới thiệu một plugin thực hiện nó không?Vim: Đi đến đầu/cuối phương pháp tiếp theo

Cảm ơn sự giúp đỡ của bạn!

Edit: [{}] sẽ không làm việc tất cả thời gian, bởi vì bạn phải nằm trong khối với {} (và không có trong một số phạm vi sâu trong khối đó) để bạn có thể kết thúc ở bên phải { hoặc } sau đó.

Chỉnh sửa 2: Đây là danh sách mã mà [m và bạn bè không hoạt động.

namespace foo { 

#define define_foo   \ 
    template <class T>  \ 
    struct foo_traits<X> \ 
    {      \ 
     using foo = X;  \ 
    }; 

template <class T> 
struct foo_traits; 

define_bar(T*, T*, T*); 

template <class T> 
struct baz; 

template <class T> 
struct baz<T&> 
{ 
    static T* apply(T& t) { return &t; } 
}; 

template <class T> 
inline T a(T t) { return t; } 

} 
+4

Trong Java, tôi sẽ sử dụng IDE được thiết kế để phát triển Java. Tương tự cho C++. –

+20

@PeterLawrey đó là siêu hữu ích để biết ... – jalf

+2

Bạn đã thử '[{' và ']}'? –

Trả lời

34

Vim có [m/]m xây dựng trong "cho Java hoặc ngôn ngữ có cấu trúc tương tự".

Tôi đã viết các phiên bản tùy chỉnh xử lý Vim functions, VBScriptbatch files, trong số các phiên bản khác. Đây là tất cả được hỗ trợ bởi CountJump plugin của tôi, có thể được sử dụng để viết các chức năng nhảy tùy chỉnh dựa trên các biểu thức chính quy.

+0

Tôi nghĩ hỗ trợ cho C++ sẽ đòi hỏi một cái gì đó mạnh hơn các biểu thức thông thường, bởi vì ngay cả '[m','] m' , '[M','] M' không hoạt động đối với mã C++ của tôi. –

+1

Nếu bạn đang theo sau giải pháp 100%, bạn cần một trình phân tích cú pháp C++ đầy đủ; nhưng thông thường, một giải pháp "chủ yếu là đúng" thường có thể đạt được với regexps; cp. Cú pháp của Vim làm nổi bật. –

+0

+1 để đóng góp các tập lệnh vim. –

2

Trông giống như một bản sao của: Vim [m motion with c#

Bạn có thể, ví dụ, đưa ra một cố gắng để lừa bẩn này: 9]}. Chỉ cần nhảy đến sốthứ 9 từ vị trí hiện tại (nếu bạn không quá lồng nhau, nên hoạt động ...)

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