Listar todos los complementos de tipo de archivo conocidos por Vim

14

Quiero enumerar todos los tipos de archivo que Vim reconoce de su ruta de tiempo de ejecución.

Por ejemplo:

ada
arc
c
clojure
common-lisp
elisp
go
python

¿Cómo puedo hacerlo?

Profpatsch
fuente

Respuestas:

17

Si los necesita para un comando personalizado que toma argumentos de tipo de archivo, puede usarlos :command -complete=filetype. De lo contrario, puede derivar la lista a través de la globpath()función usted mismo:

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

Esto obtiene todos los scripts de ftplugin del runtimepath, y luego modifica la especificación del archivo fnamemodify()para que solo enumere la raíz del nombre del archivo. split()se convierte en una lista y join()vuelve a las líneas para :echoing.

Ingo Karkat
fuente
¿Esto también toma archivos ftplugin/after?
Profpatsch
2
Quieres decir after/ftplugin, y sí, porque esos están contenidos en &rtp.
Ingo Karkat
Esto da un error de sintaxis en bash y zsh.
mareoraft
3
@mareoraft: ¡Prueba esto dentro de Vim, no en el shell!
Ingo Karkat