Listet alle Dateityp-Plugins auf, die Vim bekannt sind


14

Ich möchte alle Dateitypen auflisten, die Vim anhand seines Laufzeitpfads erkennt.

Beispielsweise:

ada
arc
c
clojure
common-lisp
elisp
go
python

Wie kann ich es tun?

Antworten:


18

Wenn Sie diese für einen benutzerdefinierten Befehl benötigen, der Dateitypargumente akzeptiert, können Sie sie einfach verwenden :command -complete=filetype. Ansonsten können Sie die Liste über die globpath()Funktion selbst ableiten :

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

Dadurch werden alle ftplugin-Skripte vom Laufzeitpfad abgerufen und die Dateispezifikation über so geändert fnamemodify(), dass nur das Stammverzeichnis des Dateinamens aufgeführt wird. split()konvertiert in eine Liste und join()zurück zu den Zeilen für :echoing.


Nimmt das auch Dateien ab ftplugin/after?
Profpatsch

2
Sie meinen after/ftplugin, und ja, weil diese enthalten sind &rtp.
Ingo Karkat

Dies führt zu einem Syntaxfehler sowohl bei bash als auch bei zsh.
Mareoraft

3
@ Mareoraft: Versuchen Sie dies in Vim, nicht in der Schale!
Ingo Karkat,
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.