Existe-t-il un * bon * mode HTML pour emacs?

23

J'adore emacs,

et je veux faire mon travail de programmation Web,
mais je ne trouve pas le moyen de le faire pour éditer correctement le HTML.

Je veux dire que c'est sérieusement affreux.

Cela fera du HTML bien, mais pas PHP, javascript, etc.

J'ai essayé de passer en mode html-helper ... Je l'ai téléchargé, mis dans / usr / local / share / emacs / site-lisp et l'ajouté à mon fichier .emacs:

(autoload 'html-helper-mode "html-helper-mode" "Yay HTML" t)
  (setq auto-mode-alist (cons '("\\.html$" . html-helper-mode) auto-mode-alist))

copié et collé depuis un site (je ne connais pas elisp).
cela ne met en évidence rien du tout.

J'ai essayé de télécharger tout un tas de modes et d'utiliser un autre mode pour les enchaîner, en vain.

Emacs est si génial à tous points de vue - pourquoi ne peut-il pas faire la simple tâche de modifier des pages Web? Je veux dire, c'est une chose assez standard à faire pour les éditeurs ces jours-ci.

Alors, est-ce que quelqu'un sait comment faire cela?

Carson Myers
la source

Réponses:

4

Avez-vous consulté la page html du wiki Emacs ? Nxhtml en particulier semble utile.

luapyad
la source
4
ça a l'air utile, mais c'est très pénible à utiliser ... ça charge lentement, ça n'indente pas correctement, c'est moche, ça marche lentement, tout est en rouge, puis tout est en italique et juste, c'est douloureux ...
Carson Myers
1
J'ai utilisé nxhtml avec succès. Les couleurs des polices et les italiques sont tous contrôlables en personnalisant les visages
Doug Harris
35

J'ai eu le même problème que vous et j'ai donc décidé d'écrire en mode Web .

entrez la description de l'image ici

Web-mode.el est un mode majeur pour Emacs destiné à l'édition de modèles de sites Web mixtes (HTML avec Java / JSP, PHP, CSS, JavaScript).

Il ne repose sur aucun autre mode. Il met en évidence et indente la syntaxe en fonction du type de bloc de code. J'ai écrit une petite page de HOWTO sur

À propos

  • web-mode.el est un mode majeur pour l'édition de modèles Web (HTML avec PHP, Java / JSP, JavaScripts, styles CSS).
  • web-mode.elCe ne sera jamais un mode PHP ou JS complet. (Nous n'encourageons pas les blocs de code multi-lignes dans les modèles!).

Caractéristiques natives

  • Indentation intelligente (selon le contexte: HTML, PHP, Java / JSP, JavaScript ou CSS)
  • navigation dans le code: C-c C-nentre balise HTML d’ouverture et de fermeture ou entre contrôles PHP> - si ... sinon ... endif, pour ... endfor
  • Balise HTML à fermeture automatique (après
  • mise en évidence de la syntaxe (selon le type de bloc)
  • insertion d'extrait C-c C-i(mise en retrait automatique, prise en compte de la sélection de texte)
  • auto-inserts (ex. ?>après <?php)
fxbois
la source
Allez dire, ça sauve ma journée ... Merci @fxbois! J'aime cela. Enfin, je peux obtenir l’indentation de mélange entre html, css, java, etc. Peut-on le faire avec Python?
swdev
@swdev pourriez-vous ouvrir un problème sur github à propos de cette demande de compatibilité python. Pourrait envoyer un lien vers la documentation sur la syntaxe du modèle et un exemple d'un tel modèle.
fxbois
Ça a l'air chouette, mais semble utiliser regexp pour analyser le HTML, plutôt que d'avoir un vrai analyseur comme psgml ...
David N. Welton
3
Qu'entendez-vous par analyseur réel? Je traverse le document pour trouver les balises commençant par <et finissant par>, etc., etc. Avez-vous trouvé des limitations? Si vous en trouvez, n'hésitez pas à signaler des problèmes sur le github repo
fxbois
3

Je suis insatisfait des modes disponibles, mais j’ai trouvé le bonheur récemment en utilisant un vieux bon vieux html-modeaugmenté de yasnippetet tidy.el. Comme d'autres réponses l'ont mentionné, le mode nxhtml est utile si vous écrivez xhtml.

Si vous souhaitez que php et javascript soient surlignés, vous pouvez regarder mmm-mode, ce qui vous permettra d’exécuter plusieurs modes majeurs à la fois. Je ne l'ai jamais utilisé, je ne sais donc pas qui gère les raccourcis clavier, etc., de sorte que vous devrez vous sentir à l'aise.

Pinochle
la source
3

Essayez le mode multi-Web , c’est un mode mineur conçu pour l’édition Web, il sélectionne la majeure appropriée lorsque le point se déplace.

skwee rell
la source
0

Moi aussi, j'utilise le mode nXhtml pour l'édition en mode mixte, car plusieurs modes ne fonctionnent pas correctement. Cela a été un peu difficile, mais des constructions récentes se sont révélées utiles. Je cours avec Emacs 23 FWIW.

stsquad
la source