2013-04-23 56 views
5

Tôi đang viết một tệp cú pháp vim. Và tôi tìm thấy một biến gọi là main_syntax được sử dụng trong một số tệp cú pháp hiện có. Nhưng tôi không thể tìm thấy bất kỳ tài liệu nào giải thích nó.Ý nghĩa của main_syntax

Điều này document chỉ mô tả một biến khác, b:current_syntax, là được sử dụng để thông báo cho tập lệnh khác cú pháp hiện tại là gì.

Có vẻ như main_syntax có cùng ý nghĩa. Đây có phải là biến số kế thừa không?

Trả lời

2

Một số tập lệnh cú pháp hỗ trợ được nhập vào một cú pháp khác thông qua :syntax include, ví dụ: javascript bên trong html.

Biến số main_syntax theo dõi cú pháp thực sự được đặt bởi người dùng/loại tệp; bao gồm các tập lệnh cú pháp rồi bỏ qua việc xóa các mục cú pháp hiện có khi biến này được đặt. (Trong khi các kịch bản cú pháp được cho là :finish mà không có bất kỳ hành động nào nếu b:current_syntax được đặt.) Một khác biệt là b:current_syntaxmain_syntax chỉ được xác định trong quá trình tải cú pháp thực.

TL; DR: Nếu bạn tự hỗ trợ bao gồm/bao gồm các cú pháp khác, hãy sao chép bản mẫu có điều kiện từ cú pháp hiện tại, ví dụ: $VIMRUNTIME/syntax/html.vim; nếu không, bạn có thể bỏ qua điều này.

+0

Tôi không thể biết đây có phải là quy ước của khái niệm được hỗ trợ vim hay không. Nếu sau này, làm thế nào bạn tìm thấy tài liệu về nó? –

+0

@DanielKaplan: Không có tài liệu rõ ràng, nhưng một số cú pháp đi kèm với Vim sử dụng 'main_syntax'. Vì hầu hết các tác giả cú pháp đều dựa trên cú pháp của họ, đó là một quy ước mạnh mẽ và có lẽ cũng được Bram hỗ trợ. Nếu bạn nghĩ rằng điều này nên được ghi lại, vui lòng gửi bản vá tài liệu! –