Dalam kasus khusus itu, saya hanya bermain dengan :scriptnames. Kita tidak dapat berharap untuk menggunakan variabel global untuk memeriksa apakah plugin ft telah dimuat - LaTeXSuite mungkin memiliki plugin, saya tidak ingat, yang pasti adalah bahwa ada banyak skrip ftplugin. Banyak ftplugin menggunakan b:did_ftplugin(yang dikirimkan dengan Vim setidaknya), tetapi pendekatan ini jelas tidak skala: akibatnya, tidak semua ftplugin menggunakan variabel tak berguna ini, dan kami tidak dapat memeriksa nama variabel generik untuk mengetahui apakah ftplugin tertentu memiliki telah dimuat - misalnya, untuk C saja saya punya 22 ftplugins, mereka pasti tidak menggunakan penjaga anti-reinklusi yang sama.
Jadi :scriptname. Alas :scriptnamememberikan banyak hasil yang tidak teratur, bagi mata manusia kita. Untungnya execute()(fungsi yang sangat baru), dan filter()datang untuk menyelamatkan. Dalam hal ini, saya akan mencari skrip vim terkait lateks dengan
:echo filter(split(execute(':scriptname'), "\n"), 'v:val =~? "tex"')
" or even "latex" instead of "tex"
Juga jika Anda menggunakan pengelola plugin, kemungkinan pengelola plugin menggunakan 'runtimepath'opsi. Anda dapat menampilkan nilainya dengan :echo &rtp. Anda bahkan dapat memfilter nilainya dengan:
:echo filter(split(&rtp), ','), 'v:val =~? "tex")
(Ini akan memberi tahu Anda apakah pengelola plugin Anda telah mengaktifkan plugin Anda, LaTeX-suite dalam kasus Anda. Ini tidak akan memberi tahu Anda apakah ftplugins terkait telah dimuat dengan benar. :scriptnameAkan memberikan informasi ini kepada Anda.)