Existe algum modo HTML * bom * para o emacs?

23

Eu amo emacs,

e quero fazer meu trabalho de programação na web,
mas não consigo encontrar uma maneira de fazê-lo editar o HTML corretamente.

Quero dizer, é realmente horrível.

Ele funcionará bem em HTML, mas não em PHP, javascript etc.

Tentei obter o modo helper html ... Fiz o download, coloquei em / usr / local / share / emacs / site-lisp e o adicionei ao meu arquivo .emacs:

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

copiado e colado de algum site (não sei elisp).
apenas, não destaca nada.

Tentei fazer o download de vários modos e usar outro modo para combiná-los, sem sucesso.

O Emacs é ótimo em todos os sentidos - por que não pode fazer a tarefa simples de editar páginas da web? Quero dizer, é uma coisa bastante padrão a ser feita pelos editores atualmente.

Então, alguém sabe como fazer isso?

Carson Myers
fonte

Respostas:

4

Você verificou a página html do Emacs Wiki ? O nxhtml em particular parece útil.

luapyad
fonte
4
parece útil, mas é muito doloroso de usar ... carrega lentamente, não recua corretamente, é feio, corre devagar, destaca tudo vermelho e depois torna tudo itálico e justo, é doloroso ...
Carson Myers
1
Eu usei nxhtml com sucesso. Cores de fonte e itálico são todos controláveis, personalizando os rostos
Doug Harris
35

Eu tinha o mesmo problema que você, então decidi escrever no modo web .

insira a descrição da imagem aqui

O Web-mode.el é um modo principal do Emacs destinado à edição de modelos da Web mistos (HTML com Java / JSP, PHP, CSS, JavaScript).

Não depende de nenhum outro modo. Ele destaca e recua a sintaxe de acordo com o tipo de bloco de código. Eu escrevi uma pequena página HOWTO sobre

Sobre

  • web-mode.el é um modo principal para editar modelos da Web (HTML com estilos PHP, Java / JSP, JavaScripts, CSS).
  • web-mode.elEste nunca será um modo PHP ou JS completo. (Não incentivamos blocos de código com várias linhas nos modelos!).

Recursos Nativos

  • recuo inteligente (de acordo com o contexto: HTML, PHP, Java / JSP, JavaScript ou CSS)
  • navegação de código: C-c C-nentre abrir e fechar a tag HTML ou entre controles PHP> - se ... else ... endif, for ... endfor
  • Fechamento automático da tag HTML (após
  • destaque de sintaxe (de acordo com o tipo de bloco)
  • inserção de trecho C-c C-i(recuo automático, ciente da seleção de texto)
  • inserções automáticas (ex. ?>depois <?php)
fxbois
fonte
Vamos dizer, ele salva o meu dia ... Obrigado @fxbois! Eu amo isso. Finalmente, posso obter o recuo da mistura entre html, css, java, etc. Isso pode ser feito com o Python?
swdev
@swdev você poderia abrir um problema no github sobre essa solicitação de compatibilidade com python. Poderia enviar o link da para a documentação de sintaxe do modelo e um exemplo desse modelo.
Fxbois 12/09/2013
Looks limpo, mas parece usar regexp para análise de HTML, em vez de ter um analisador real como psgml ...
David N. Welton
3
O que você quer dizer com analisador real? Percorro o documento para encontrar tags que começam com <e terminam com> etc etc. Você encontrou alguma limitação? Se você encontrar algum, não hesite em reportar problemas no repo github
fxbois
3

Fiquei insatisfeito com os modos disponíveis, mas recentemente descobri a felicidade usando o velho simples html-modeaumentado com yasnippete tidy.el. Como as outras respostas mencionaram, o modo nxhtml é útil se você estiver escrevendo xhtml.

Se você deseja destacar o php e o javascript, consulte o mmm-modeque permitirá executar vários modos principais ao mesmo tempo. Eu nunca o usei, então não sei com quem ele lida com combinações de teclas conflitantes, etc.

Pinochle
fonte
3

Experimente o modo multi-web , é um modo menor projetado com a edição na web, ele seleciona o principal apropriado quando o ponto se move.

skwee rell
fonte
0

Eu também uso o modo nXhtml para edição em modo misto, pois não consegui fazer com que vários modos funcionassem corretamente. Foi um pouco difícil, mas versões recentes provaram ser úteis. Estou correndo com o Emacs 23 FWIW.

stsquad
fonte