Trong trường hợp cụ thể đó, tôi chỉ chơi với :scriptnames
. Chúng tôi không thể sử dụng biến toàn cục để kiểm tra xem plugin ft đã được tải chưa - LaTeXSuite có thể có plugin không, tôi không nhớ, điều chắc chắn là có nhiều tập lệnh ftplugin. Nhiều ftplug sử dụng b:did_ftplugin
(ít nhất là được vận chuyển với Vim), nhưng cách tiếp cận này chắc chắn không mở rộng: do đó, không phải tất cả các ftplug đều sử dụng biến vô nghĩa này và chúng tôi không thể kiểm tra tên biến chung để biết liệu một ftplugin đã cho có đã được tải - ví dụ, đối với C một mình tôi có 22 ftplugins, chắc chắn họ không sử dụng cùng một bộ bảo vệ chống tái sinh.
Vì vậy :scriptname
. Than ôi :scriptname
cho rất nhiều kết quả không có thứ tự, cho mắt người của chúng ta. May mắn thay execute()
(một chức năng rất gần đây), và filter()
đến để giải cứu. Trong trường hợp đó, tôi sẽ tìm các kịch bản vim liên quan đến latex với
:echo filter(split(execute(':scriptname'), "\n"), 'v:val =~? "tex"')
" or even "latex" instead of "tex"
Ngoài ra nếu bạn đang sử dụng trình quản lý plugin, có khả năng trình quản lý plugin đang sử dụng 'runtimepath'
tùy chọn. Bạn có thể hiển thị giá trị của nó với :echo &rtp
. Bạn thậm chí có thể lọc giá trị của nó với:
:echo filter(split(&rtp), ','), 'v:val =~? "tex")
(Điều này sẽ cho bạn biết liệu trình quản lý plugin của bạn đã kích hoạt plugin của bạn chưa, LaTeX-suite trong trường hợp của bạn. Điều này sẽ không cho bạn biết liệu các ftplugins liên quan đã được tải đúng chưa. :scriptname
Sẽ cung cấp cho bạn thông tin này.)