2010-04-08 4 views
28

Lorsque je travaille sur un fichier PHP par exemple, le type de fichier par défaut est php. Cela a du sens, cependant, lorsque ce fichier PHP a HTML ainsi le type de fichier est toujours seulement php. Pour certains plugins, cela signifie que j'obtiens la fonctionnalité PHP pour ce plugin, mais que je manque la fonctionnalité HTML. Une situation plus spécifique où cela se produit est avec mon plugin extrait. Je reçois des extraits de php et pas de snippets html lorsque je modifie un fichier php.Plusieurs types de fichiers dans vim

solutions possibles à ce (que je n'aime évidemment pas, d'où mon affectation à cette question) sont:

  1. ajouter une carte pour basculer entre les différents types de fichiers quand je suis d'édition différentes sections du fichier.
  2. mettre à jour mon fichier snippets php pour inclure les snippets html ainsi (alors que cela fonctionnerait pour l'exemple ci-dessus, il ne résout pas le problème fondamental).

Alors, Y at-il un moyen de modifier un fichier en utilisant plusieurs types de fichiers en même temps dans vim?

Editer: Pour référence future, le plugin spécifique dont je parle est appelé snipMate. http://www.vim.org/scripts/script.php?script_id=2540

+0

Mode PHP en (g) VIM prend en charge quatre langues dans le même fichier: HTML, JavaScript (mais pas aussi bien fait que 'ft = javascript'), CSS et PHP. Il va détecter les limites de chacun. Le plugin a été écrit avec les programmeurs web à l'esprit. – amphetamachine

+0

J'obtiens la coloration syntaxique fonctionnant comme prévu pour les fichiers sur lesquels je travaille avec différentes langues dans le même fichier, mais qu'en est-il des autres plugins? Êtes-vous en train de dire qu'ils devraient déjà travailler avec (g) vim? Je ne vois pas comment cela pourrait être. – chadgh

+0

Il n'y a pas de manière complètement générale. Le plugin en question devrait être réécrit de la même manière que le fichier de syntaxe PHP. Ce sont deux scripts vim; vous pouvez regarder le fichier de syntaxe et voir comment il détecte les limites, puis essayez de l'appliquer. C'est un problème difficile en général, car tout ce que fait un plugin n'est pas aussi clairement délimité que la coloration syntaxique. – Cascabel

Répondre

41

Vous pouvez spécifier d'utiliser plusieurs types de fichiers en même temps. Par exemple:

:setfiletype html.php 

Mais la plupart des plugings filetype et les fichiers de syntaxe ne sont pas conçus pour de tels cas. Voir aussi: help 'filetype'

+2

Parfait! Pour le plugin dont j'étais surtout préoccupé, cela a fonctionné parfaitement. Modification d'un fichier PHP Je tape: setfiletype html.php.js.css et le plugin de l'extrait inclut les fichiers d'extraits pour tous les types de fichiers spécifiés. Merci – chadgh

+0

Excellent. J'ai eu exactement la même question à propos de snipMate – devth

+0

Je ne sais rien à propos de la programmation. Je vous remercie! pour faire mieux. – Prospero

Questions connexes