Comment forcer vim à mettre en évidence la syntaxe d'un fichier au format HTML?

120

Comment définir la coloration syntaxique de vim pour traiter une extension de fichier comme un fichier html?

J'utilise le modèle ez, donc l'extension du fichier est .ezt. Mais il s'agit en grande partie de code html normal.

Karthick
la source

Réponses:

109

Vous pouvez également mettre ceci dans votre .vimrc:

au BufReadPost *.ezt set syntax=html
Benoit
la source
E216: Aucun groupe ou événement de ce type: BufLoad * .ezt set syntax = html ... qu'est-ce que je fais de mal?
Karthick
2
D'après mon expérience, cette approche échouera si vous donnez un nom de fichier exact, par exemple .myspecialdotfile. Il a besoin d'une étoile quelque part pour travailler, même si ce n'est théoriquement pas nécessaire.
SeldomNeedy
Je l'ai dans mon .vimrcfichier pour Dockerfiles qui ont des extensions à des fins différentes. autocmd BufNewFile, BufRead Dockerfile * set filetype = docker Le simple fait d'utiliser Dockerfile*empêche la mise en évidence de la syntaxe de fonctionner lors de l'utilisation vi Dockerfile- l'ajout de la barre oblique inverse lui permet de fonctionner pour Dockerfile/ Dockerfile.somethingetDockerfilesomething
Contrôle Android
204
:set syntax=html
ambre
la source
10
@pbr: qui répond exactement au titre de la question.
Skippy le Grand Gourou
2
> "traiter une extension de fichier comme un fichier html"
0atman
c'est ce que je cherchais :)
niken
Pourrait aider à savoir que l'exécution :set syntaxrenverra la mise en évidence du fichier actuellement appliqué
Ari
26

Jetez un œil à ce sujet Wikia Vim . Quelques conseils utiles:

  • Comme d'autres réponses l'ont mentionné, vous pouvez utiliser la commande vim set pour définir la syntaxe. :set syntax=<type><type>est quelque chose comme perl, html, php, etc.

  • Il existe un autre mécanisme qui peut être utilisé pour contrôler la coloration syntaxique appelée filetype, ou ftpour faire court. Semblable à la syntaxe, vous lui donnez un type comme ceci: :set filetype=html. D' autres types de fichiers sont perl, php, etc.

  • Parfois, vim «oublie» la syntaxe à utiliser, surtout si vous mélangez des éléments tels que php et html. Utilisez le raccourci clavier Ctrl+ L( <C-L>) pour obtenir vim pour actualiser la mise en évidence.

slm
la source
Meilleure réponse! +!
J. Allan
17

Notez que cela :set syntax=xmlmet en évidence correctement mais semble échouer lorsque l'on tente d'auto-identifier le fichier (c'est-à-dire en cours d'exécution gg=G).

Lorsque je suis passé à :set filetype=xml, la mise en évidence a fonctionné correctement et le fichier est correctement mis en retrait.

Daniel
la source
14

Dans un fichier .php (ou un fichier html), vous pouvez utiliser un Vim Modeline pour forcer certaines commandes ou certains paramètres:

 1 /* vim: syntax=javascript
 2  *
 3  * .submit_norefresh()
 ~
 ~
Ярослав Рахматуллин
la source
2
Vous voulez dire Modeline
Shammel Lee
Parfois, les au ...paramètres liés à la syntaxe dans mon ~/.vimrcsont ignorés pour certains fichiers (probablement en raison de métadonnées modifiées?). Autre que la copie de ce contenu de fichier dans un nouveau fichier, la définition d'une ligne de modèle en haut de ce fichier fonctionne. Par exemple, pour un script BASH, l'ajout d'une deuxième ligne, # vim: syntax=shaprès le shebang (première ligne:) #!/bin/bashsemble fonctionner, de manière fiable. Puisqu'il s'agit essentiellement d'un "commentaire", j'inclus simplement les deux lignes dans mon sbbextrait ("shebang bash").
Victoria Stuart
13

Pour le rendre automatique, ajoutez cette ligne à votre ~/.vimrc:

autocmd BufNewFile,BufRead *.ezt set filetype=html

Si vous voulez le faire uniquement pour le fichier actuel, tapez:

:set filetype=html

Vous pouvez également remplacer à la syntaxplace de filetype, mais filetypeaffecte plus de choses quesyntax (y compris la coloration syntaxique, les règles d'indentation et les plugins), vous devriez donc généralement utiliser à filetypemoins que vous ne vouliez seulement affecter syntax.

wisbucky
la source