Apa perbedaan antara `indentasi plugin tipe file` dan` tipe file indentasi`?

39

Saya melihat salah satu dari dua baris ini dalam .vimrcfile. Yang ini tampaknya paling umum:

filetype plugin indent on

Tetapi bagaimana perbedaannya dari baris ini:

filetype indent on

Saya telah menemukan dokumentasi untuk yang terakhir , tetapi saya masih bingung.

Flimm
sumber
2
tip sisi: dapat Anda lakukan :filetypeuntuk menunjukkan pengaturan tipe file.
wisbucky

Jawaban:

48

filetype plugin indent on seperti kombinasi dari perintah-perintah ini:

filetype on
filetype plugin on
filetype indent on

Menyalakan "deteksi", "plugin" dan "indentasi" sekaligus. Anda dapat memeriksa sendiri dengan membaca :help :filetype-overview.

Deteksi

Apa yang dilakukan "deteksi" tipe file? Dari dokumen:

Setiap kali file baru atau yang sudah ada diedit, Vim akan mencoba mengenali tipe file dan mengatur opsi 'filetype'. Ini akan memicu acara FileType, yang dapat digunakan untuk mengatur penyorotan sintaks, mengatur opsi, dll.

Ini kurang membingungkan jika Anda menyadari bahwa filetypeperintahnya berbeda dari filetypeopsi. (Perintah :filetype..., pilihan: :set filetype...)

Plugin

Apa yang dilakukan bagian "plugin"? Dari dokumen:

Ini sebenarnya memuat file "ftplugin.vim" di 'runtimepath'.

Hasilnya adalah ketika file diedit file plugin-nya dimuat (jika ada satu untuk jenis file yang terdeteksi).

File yang sedang dimuat tidak harus dinamai ftplugin.vim, bisa jadi ftplugin/html_example.vimmisalnya.

Indentasi

Apa yang dilakukan bagian "indent"? Dari dokumen:

Ini sebenarnya memuat file "indent.vim" di 'runtimepath'.

Hasilnya adalah ketika file diedit, file indentanya dimuat (jika ada satu untuk jenis file yang terdeteksi). indent-ekspresi

Sekali lagi, file mungkin tidak diberi nama indent.vim, itu bisa dinamai indent/html_example.vimmisalnya.

Flimm
sumber
1
untuk membuatnya jelas, nama file harus sesuai dengan 'filetype' yang akan diaktifkan, misalnya <type>/foobar.vim(subdirektori per filetype) atau <type>_foobar.vimatau hanya di <type>.vimmana <type> sesuai dengan filetype yang sebenarnya
Christian Brabandt