Liệt kê tất cả các plugin filetype được biết đến với Vim


14

Tôi muốn liệt kê tất cả các kiểu tệp mà Vim nhận ra từ runtimepath của nó.

Ví dụ:

ada
arc
c
clojure
common-lisp
elisp
go
python

Tôi làm nó như thế nào?

Câu trả lời:


18

Nếu bạn cần những thứ đó cho một lệnh tùy chỉnh có các đối số filetype, bạn chỉ có thể sử dụng :command -complete=filetype. Khác, bạn có thể lấy danh sách thông qua globpath()chức năng:

echo join(map(split(globpath(&rtp, 'ftplugin/*.vim'), '\n'), 'fnamemodify(v:val, ":t:r")'), "\n")

Điều này nhận được tất cả các tập lệnh ftplugin từ runtimepath, và sau đó sửa đổi các tập tin thông qua fnamemodify()để chỉ liệt kê gốc của tên tệp. split()chuyển đổi thành một danh sách và join()quay lại dòng cho :echoing.


Điều này cũng lấy các tập tin từ ftplugin/after?
Profpatsch

2
Bạn có nghĩa là after/ftplugin, và có, bởi vì những người được chứa trong &rtp.
Ingo Karkat

Điều này đưa ra một lỗi cú pháp trên cả bash và zsh.
mareoraft

3
@mareoraft: Hãy thử cái này bên trong Vim, không phải trong vỏ!
Ingo Karkat
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.