Encuentra qué tipo de archivo se carga en vim

224

Tan pronto como cargue cualquier archivo en vim, intentará detectar el archivo y resaltarlo si es posible.

Quiero conocer un comando vim que me dirá qué ftplugin o Filetype plugin / filetype está considerando vim para resaltar el archivo.

ruturaj
fuente
¿Vim no hace eso automáticamente?
antes
Si coloca un vimscript en ~ / .vim / ftplugin /, obtendrá ese vimscript cuando se cargue un archivo del tipo de archivo correspondiente. Así que ponga setlocal cursorlineen ~/.vim/ftplugin/python.vimy tendrá línea actual destacando en los archivos de pitón. Ver :help ftpluginy:help after
idbrii

Respuestas:

365

:set filetype?

hobbs
fuente
39
Puede guardar algunas teclas y simplemente usar:set ft?
Matthew Rankin
35
:se ft?- Yo gano. ;)
sjas
39
:se ft? ¡Gané!
Fábio Santos
SO requiere una longitud mínima de comentario, por lo que puede no ser obvio que el más corto termine después del t. ? es opcional.
reergymerej
15

También puede agregar el tipo de archivo a su línea de estado o título de ventana utilizando los elementos %yy %Y. Ver

:help 'statusline'
:help 'titlestring'
Nefrubyr
fuente
11

&filetype para uso de script

Ejemplo mínimo:

echo &filetype

Ejemplo de uso más realista:

if &filetype ==# 'c' || &filetype ==# 'cpp'
  setlocal noexpandtab
endif

&la sintaxis funciona para todas las opciones: /vi/2569/how-do-i-check-the-value-of-a-vim-option-in-vimscript

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
fuente
2

Cuando quería encontrar el tipo de archivo era porque estaba teniendo la extensión .ipy modificando un script ipython. Las preguntas y respuestas anteriores funcionaron muy bien para ver que la extensión ipython no se trataba como python (algo obvio). Por lo tanto, quería forzar el tipo de archivo, y lo encontré en el sitio helimpul vim. http://vim.wikia.com/wiki/Forcing_Syntax_Coloring_for_files_with_odd_extensions

Agregar lo siguiente a sus trabajos .vimrc

au BufRead,BufNewFile *.ipy set filetype=python
Pablo
fuente
2

Como está haciendo / buscando esta pregunta en primer lugar, supongo que hace esto porque su vim de alguna manera no resalta la sintaxis adecuada para usted automáticamente, y está tratando de averiguar por qué y cómo solucionarlo.

El comando :set filetype?en la respuesta elegida básicamente le pregunta a vim "oye, ¿qué tipo crees que es el archivo actual?". Y si vim no muestra el color / resaltado adecuado, lo más probable es que su respuesta sea mostrarlo filetype=en la parte inferior de la consola, lo que significa que vim no conoce el tipo de archivo. Esto es solo la mitad de tu búsqueda.

Lógicamente, su próximo paso será decirle a vim "solo resáltelo usando (por ejemplo) la sintaxis ps1". Para hacerlo :set filetype=ps1, escriba , ahora vim resaltará el archivo actual con el estilo ps1 (siempre que descargue el archivo de sintaxis powershell adecuado y lo coloque en su sintaxis ~ / .vim / ).

En este punto, probablemente querrás resaltar automáticamente la sintaxis a partir de ahora. La solución es colocar un script de detección correspondiente en su carpeta ~ / .vim / ftdetect. Por ejemplo, si desea resaltar todos los scripts de PowerShell .ps1, .psm1, etc., coloque este archivo en su ~ / .vim / ftdetect

Ahora que es un final feliz.

RayLuo
fuente