Kapan harus menggunakan direktori after /?

14

Saya mengerti itu adalah tempat untuk meletakkan hal-hal yang seharusnya memiliki keputusan akhir dan tidak akan ditimpa oleh sumber lain, tetapi saya tidak jelas tentang bagaimana memutuskan kapan harus memasukkan sesuatu, katakanlah, ~/.vim/after/ftplugin/daripada ~/.vim/ftplugin/.

Apakah orang pada umumnya menggunakan ~/.vim/ftplugin/dan hanya memindahkan barang-barang ~/.vim/after/ftplugin/jika mereka mengamati perilaku yang tidak diinginkan, atau mereka langsung memasukkan semuanya ke dalam direktori setelahnya?

ivan
sumber

Jawaban:

20

Secara umum, jika Anda ingin menambahkan plugin Anda sendiri, atau mengganti plugin standar dengan Anda sendiri, itu akan masuk ke ~/.vim/pluginatau ~/.vim/ftplugin. Jika Anda ingin mempertahankan fungsi plugin yang ada tetapi menambahkannya, atau mengubah hanya beberapa pengaturan yang dibuat olehnya, maka plugin Anda akan masuk ke ~/.vim/after/pluginatau ~/.vim/after/ftplugin.

garyjohn
sumber
Untuk beberapa alasan saya selalu beranggapan Vim mencari runtimepath dan mencari setiap file yang cocok dengan kriteria pencarian, bukan hanya mencari sumber yang cocok pertama kali ditemukan. Agak kedengarannya seperti hal-hal di direktori setelah mendapat perlakuan "tambahan" seperti itu, tapi mungkin yang lainnya diperlakukan lebih seperti variabel Unix PATH, di mana pertandingan pertama menang?
ivan
5
Vim memang sumber setiap file yang cocok dengan kriteria pencarian, tetapi plugin yang ditulis dengan benar memiliki tes di dekat bagian atas formulir if exists("g:loaded_<plugin name>") finish endif let g:loaded_<plugin name> = 1,. Plugin yang dimuat pertama kali "menang" dan plugin berikutnya dengan nama yang sama keluar lebih awal melalui finishperintah. Begitulah cara plugin di ~/.vim/plugindirektori Anda , misalnya, dapat mencegah plugin $VIMRUNTIME/plugindari memuat sepenuhnya. Tes itu tidak termasuk dalam afterfile plugin.
garyjohn
Ok, saya rasa saya mengerti sekarang. Karena semua file yang sesuai akan bersumber, gunakan finishguard-klausul bila Anda ingin memuat hanya pertandingan pertama, dan menggunakan direktori setelah-( tanpa a finishguard-klausul) ketika Anda harus mengesampingkan pengaturan yang dipengaruhi oleh salah satu dari yang lain sumber.
ivan
1

jika vanilla vim mengenali tipe file tertentu dan Anda ingin memodifikasi perilaku yang dikirim maka pengaturan Anda sendiri masuk ke ~/.vim/after/ftplugin/

Naumann
sumber