Trouvez quel type de fichier est chargé dans vim

224

Dès que je charge un fichier dans vim, il essaiera de détecter le fichier et de le surligner si possible.

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

ruturaj
la source
Vim ne le fait pas automatiquement?
avant
Si vous placez un vimscript dans ~ / .vim / ftplugin / il récupérera ce vimscript lorsqu'un fichier du type de fichier correspondant est chargé. Donc , mettez setlocal cursorlineen ~/.vim/ftplugin/python.vimet vous aurez la ligne courante mettant en lumière dans les fichiers python. Voir :help ftpluginet:help after
idbrii

Réponses:

365

:set filetype?

Hobbs
la source
39
Vous pouvez enregistrer quelques touches et simplement utiliser:set ft?
Matthew Rankin
35
:se ft?- Je gagne. ;)
sjas
39
:se ft? J'ai gagné!
Fábio Santos
SO requiert une longueur de commentaire minimale, il n'est donc pas évident que le plus court se termine après le t. ? est facultatif.
reergymerej
15

Vous pouvez également ajouter le type de fichier à votre ligne d'état ou au titre de la fenêtre à l'aide des éléments %yet %Y. Voir

:help 'statusline'
:help 'titlestring'
Nefrubyr
la source
11

&filetype pour l'utilisation du 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: /vi/2569/how-do-i-check-the-value-of-a-vim-option-in-vimscript

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

Quand j'ai voulu trouver le type de fichier, c'était parce que j'avais l'extension .ipy modifiant un script ipython. Les questions et réponses ci-dessus ont très bien fonctionné pour voir que l'extension ipython n'était pas traitée comme python (quelque peu évident). J'ai donc voulu forcer la définition du type de fichier, et je l'ai trouvé sur le site vim de helfpul. http://vim.wikia.com/wiki/Forcing_Syntax_Coloring_for_files_with_odd_extensions

Ajout de ce qui suit à vos travaux .vimrc

au BufRead,BufNewFile *.ipy set filetype=python
Paul
la source
2

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

La commande :set filetype?dans la réponse choisie demande essentiellement à vim "hey de quel type pensez-vous que le fichier actuel est". Et si vim n'affiche pas la bonne couleur / surbrillance, sa réponse est probablement de l'afficher filetype=au bas de votre console, ce qui signifie que vim ne connaît pas le type de fichier. Ce n'est qu'à mi-chemin de votre quête.

Logiquement, votre prochaine étape sera de dire à vim "mettez-le en surbrillance en utilisant (par exemple) la syntaxe ps1". Pour ce faire :set filetype=ps1, saisissez, maintenant vim mettra en surbrillance le fichier actuel en utilisant le style ps1 (à condition que vous téléchargiez déjà le fichier de syntaxe PowerShell approprié et que vous le mettiez dans votre syntaxe ~ / .vim / ).

À ce stade, vous voudrez probablement désormais mettre en évidence la syntaxe automatique. La solution consiste à placer un script de détection correspondant dans votre dossier ~ / .vim / ftdetect. Par exemple, si vous souhaitez mettre en surbrillance tous les scripts PowerShell .ps1, .psm1, etc., vous placez ce fichier dans votre ~ / .vim / ftdetect

Voilà une fin heureuse.

RayLuo
la source