Sự khác biệt giữa `filetype plugin thụt vào` và` filetype thụt vào` là gì?


38

Tôi thấy một trong hai dòng này trong .vimrccác tập tin. Điều này dường như là phổ biến nhất:

filetype plugin indent on

Nhưng nó khác với dòng này như thế nào:

filetype indent on

Tôi đã tìm thấy tài liệu cho cái sau , nhưng tôi vẫn bối rối.


2
mẹo phụ: bạn có thể làm :filetypeđể hiển thị các cài đặt filetype.
wvducky

Câu trả lời:


46

filetype plugin indent on giống như sự kết hợp của các lệnh này:

filetype on
filetype plugin on
filetype indent on

Nó bật "phát hiện", "plugin" và "thụt lề" cùng một lúc. Bạn có thể tự kiểm tra bằng cách đọc :help :filetype-overview.

Phát hiện

Filetype "phát hiện" làm gì? Từ các tài liệu:

Mỗi lần chỉnh sửa tệp mới hoặc tệp hiện có, Vim sẽ cố gắng nhận ra loại tệp và đặt tùy chọn 'filetype'. Điều này sẽ kích hoạt sự kiện FileType, có thể được sử dụng để đặt tô sáng cú pháp, đặt tùy chọn, v.v.

Điều này ít gây nhầm lẫn nếu bạn nhận ra rằng filetypelệnh này khác với filetypetùy chọn. (Lệnh :filetype..., tùy chọn :set filetype...:)

Cắm vào

Phần "plugin" làm gì? Từ các tài liệu:

Điều này thực sự tải tập tin "ftplugin.vim" trong 'runtimepath'.

Kết quả là khi một tệp được chỉnh sửa, tệp plugin của nó được tải (nếu có một tệp cho kiểu tệp được phát hiện).

Các tập tin đang được tải không nhất thiết phải được đặt tên ftplugin.vim, nó có thể là ftplugin/html_example.vimví dụ.

Thụt lề

Phần "thụt" làm gì? Từ các tài liệu:

Điều này thực sự tải tập tin "indent.vim" trong 'runtimepath'.

Kết quả là khi một tệp được chỉnh sửa, tệp thụt lề của nó được tải (nếu có một tệp cho kiểu tệp được phát hiện). biểu hiện thụt lề

Một lần nữa, tập tin có thể không được đặt tên indent.vim, indent/html_example.vimví dụ , nó có thể được đặt tên .


1
để làm cho nó rõ ràng, tên của tệp phải tương ứng với 'filetype' sắp được kích hoạt, ví dụ <type>/foobar.vim(một thư mục con cho mỗi filetype) <type>_foobar.vimhoặc đơn giản là <type>.vim<type> tương ứng với kiểu tệp thực tế
Christian Brabandt
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.