Làm thế nào để tôi biết tập tin cú pháp nào đang được sử dụng?


50

Vim là cú pháp làm nổi bật tệp của tôi theo một cách hài hước và tôi muốn biết tệp cú pháp nào chịu trách nhiệm cho hành vi này. Làm cách nào để tìm ra tập tin cú pháp mà vim đã tải?

Câu trả lời:


39

Để tìm ra tập tin Vim nào đã thực sự tải, hãy thực thi

:scriptnames

Điều đó hữu ích. Bây giờ, đây là một cái gì đó tôi không chắc chắn: nếu một tệp cú pháp xuất hiện trong danh sách này, nó có được đảm bảo rằng tệp cú pháp là "hoạt động" không? Tôi có thể thấy khá nhiều tập tin cú pháp ở đây.
Edward Z. Yang

7
Nói chung, chỉ có cái cuối cùng được liệt kê là "hoạt động" và thậm chí có thể không nếu bạn tắt cú pháp tô sáng. Để xem cú pháp hiện đang có hiệu lực, thực hiện :echo b:current_syntax. Để xem các mục cú pháp hiện đang có hiệu lực, hãy làm như Ingo đã đề xuất và thực thi :syntax list. Cái sau có thể giúp nếu các mục cú pháp từ nhiều hơn một tệp cú pháp có hiệu lực, như Ingo lưu ý.
garyjohn

1
Trên Mac OS XI đã sửa đổi /usr/share/vim/vim73/filetype.vim. Sau khi sử dụng lệnh trên, tôi nhận ra rằng nó đang sử dụng phiên bản của MacVim tại ~/Applications/MacVim.app/Contents/Resources/vim/runtime/filetype.vim. Nếu bạn đã cài đặt MacVim, hãy đảm bảo bạn sửa đổi tệp chính xác.
vang

1
Bạn có thể có hai tệp cú pháp được tải có cùng tên. Ví dụ, các tàu vim với cú pháp tô sáng cho ColdFusion, ( /usr/share/vim/vim81/syntax/cf.vimđối với tôi). Tôi đã cài đặt một cfvim tùy chỉnh vì tiêu chuẩn là ngày. :scriptnameshiển thị cả hai tập tin. Mặc định là thấp hơn trong danh sách kịch bản; tuy nhiên, trước đây đang được sử dụng. Nếu bạn nhìn vào /usr/share/vim/vim81/syntax/cf.vim, có một người bảo vệ if exists("b:current_syntax") finish endif. Vì vậy, trong trường hợp của tôi, điều scriptnamesnày rất hữu ích, nhưng tôi phải đào sâu hơn một chút.
avejidah

31

Cú pháp cho bộ đệm hiện tại có thể được truy vấn thông qua

:setlocal syntax?

Nó thường (nhưng không nhất thiết) tương ứng với filetype ( :setlocal filetype?) của bộ đệm .

Để có cái nhìn sâu sắc hơn,

:syntax list

chương trình tất cả các định nghĩa cú pháp (một số cú pháp (lon) bao gồm cú pháp ngôn ngữ khác, ví dụ như javahtmlcho đánh dấu bình luận javadoc).


Đây là những gì tôi đã tìm kiếm dựa trên tiêu đề câu hỏi của OP. OP tất nhiên làm rõ trong mô tả anh ấy đang tìm kiếm tệp cú pháp thực tế, nhưng tôi đánh giá cao bạn để nó ở đây vì đây là một trong những câu trả lời đầu tiên trong công cụ tìm kiếm.
verboze

4

Bạn có thể xem những gì filetype (s) hiện đang được sử dụng và bởi

:verbose set ft ?

Plugin xử lý filetype rất có thể nằm ở

:e $VIMRUNTIME\ftplugin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.