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?

Profpatsch
quelle

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.

Ingo Karkat
quelle
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,