276 votes

Trouver quel type de fichier est chargé dans vim

Dès que je charge un fichier dans vim, il essaie de le détecter et de le mettre en évidence si possible.

Je veux connaître une commande vim qui me dira quel ftplugin ou Filetype plugin / filetype est considéré par vim pour mettre en évidence le fichier.

0 votes

Vim ne le fait-il pas automatiquement ?

0 votes

Si vous placez un vimscript dans ~/.vim/ftplugin/, il générera ce vimscript lorsqu'un fichier du type correspondant sera chargé. Ainsi, mettez setlocal cursorline sur ~/.vim/ftplugin/python.vim et vous aurez le surlignage actuel des lignes dans les fichiers python. Voir :help ftplugin y :help after

439voto

hobbs Points 71946

:set filetype?

60 votes

Vous pouvez économiser quelques frappes et utiliser simplement :set ft?

2 votes

SO exige une longueur minimale de commentaire, il n'est donc pas forcément évident que le plus court se termine après le t . ? est facultatif.

2 votes

:se ft ? Je suis le gagnant !

36voto

Ciro Santilli Points 3341

&filetype pour l'utilisation de script.

Exemple minimal :

echo &filetype

Exemple d'utilisation plus réaliste :

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

& La syntaxe fonctionne pour toutes les options : https://vi.stackexchange.com/questions/2569/how-do-i-check-the-value-of-a-vim-option-in-vimscript

16voto

Nefrubyr Points 3059

Vous pouvez également ajouter le type de fichier à votre ligne d'état ou au titre de votre fenêtre en utilisant la fonction %y y %Y articles. Voir

:help 'statusline'
:help 'titlestring'

4voto

Paul Points 1382

Lorsque j'ai voulu trouver le type de fichier, c'était parce que l'extension .ipy modifiait un script d'ipython. Les questions et réponses ci-dessus ont bien fonctionné pour voir que l'extension ipython n'était pas traitée comme python (ce qui est assez évident). Ainsi, je voulais forcer la définition du type de fichier, et j'ai trouvé ceci sur le site de vim, toujours helfpul. http://vim.wikia.com/wiki/Forcing_Syntax_Coloring_for_files_with_odd_extensions

Ajouter le texte suivant à votre .vimrc fonctionne

au BufRead,BufNewFile *.ipy set filetype=python

3voto

Iceberg Points 919

Puisque vous posez/cherchez cette question en premier lieu, je suppose que vous le faites parce que votre vim ne met pas automatiquement en évidence la syntaxe appropriée pour vous, et vous essayez de comprendre pourquoi, et comment le corriger.

La commande :set filetype? dans la réponse choisie demande à vim "hé quel type de fichier pensez-vous que le fichier actuel soit". Et si vim n'affiche pas la couleur/la mise en évidence appropriée, il est probable que sa réponse à votre question soit la suivante filetype= au bas de votre console, ce qui signifie que vim ne connaît pas le type de fichier. Ce n'est que la moitié de votre quête.

Logiquement, votre prochaine étape sera de dire à vim "mettez-le en surbrillance en utilisant (par exemple) la syntaxe ps1". Vous le faites en tapant :set filetype=ps1 Maintenant, vim va mettre en évidence le fichier actuel en utilisant le style ps1 (à condition que vous ayez déjà mis en place le style ps1). téléchargez le fichier de syntaxe powershell approprié et placez-le dans votre ~/.vim/syntaxe ).

À ce stade, vous voudrez probablement utiliser la mise en évidence automatique de la syntaxe à partir de maintenant. La solution est de mettre un script de détection correspondant dans votre dossier ~/.vim/ftdetect. Par exemple, si vous voulez mettre en évidence tous les scripts PowerShell .ps1, .psm1, etc, vous mettez ce fichier dans votre ~/.vim/ftdetect

Ça, c'est une fin heureuse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X