Tôi có một tập tin, gọi WrongFileTypeDetection.R, có chứa các văn bản sau đây:hành vi Rất lạ với Vim cú pháp và filetype phát hiện
# This file is sometimes wrongly detected as a conf file
Tôi cũng có hai phiên bản của _vimrc, mà tôi đã có thể nghĩ đến được hoàn toàn giống hệt nhau. Tuy nhiên, khi tôi sử dụng phiên bản đầu tiên, tệp ở trên được phát hiện không chính xác dưới dạng tệp "conf", mặc dù tôi đã yêu cầu cụ thể tất cả các tệp kết thúc bằng .R được đặt thành filetype = r. Khi tôi thay đổi sang phiên bản thứ hai (di chuyển "cú pháp trên" đằng sau định nghĩa augroup), phát hiện hoạt động chính xác một lần nữa. Lưu ý rằng đây là cấu hình chỉ có cấu hình Tôi có (tôi đã chuyển vimrc chuẩn của mình trong khi gỡ lỗi này).
Phiên bản đầu tiên:
syntax on
augroup filetypedetect
autocmd! BufRead,BufNewFile *.r,*.R setfiletype r
augroup END
Thứ hai phiên bản:
augroup filetypedetect
autocmd! BufRead,BufNewFile *.r,*.R setfiletype r
augroup END
syntax on
Dường vimrc đó là rất nhạy cảm với thứ tự cụ thể của hai tập tin. Tại sao điều này lại xảy ra, vì một trong những dòng là một hộp thoại tự động sẽ được chạy sau này? Đây có phải là một lỗi trong Vim hay đây là một tính năng mà tôi không hiểu?
Cảm ơn bạn, Rich, đó là câu trả lời rất chi tiết và chu đáo. Tôi sẽ ghi nhớ điều này và đề cập đến nó bất cứ khi nào tôi phải loay hoay với việc phát hiện kiểu filetype trong Vim. – Magnus
@Magnus Bạn được chào đón. Tôi không thêm nó vào câu trả lời, bởi vì tôi nghĩ đã có rất nhiều thông tin trong đó, nhưng tôi cũng đã thực hiện một số sửa lỗi với 'vim -D' để giúp tìm ra chính xác những gì đã được đặt vào thời điểm nào. – Rich