Eu comecei os primeiros passos dolorosos de usar emacs para editar um arquivo HTML com tags HTML e conteúdo javascript. Instalei o nxhtml e tentei usá-lo - ou seja, configurei o modo nxhtml-mumamo-mode para arquivos .html. Mas eu não estou amando isso. Quando estou editando a parte Javascript do código, os recuos de tabulação não se comportam como na edição de código C / C ++. Ele começa a colocar tabulações dentro da linha e se você tentar clicar em tab no espaço em branco que precede uma linha, ele insere a tabulação em vez de tabular novamente a linha.
Outro aspecto que não gosto é que ele não faz coloração de sintaxe como os modos C / C ++ usuais fazem. Eu prefiro muito mais o comportamento do modo java padrão ao editar arquivos HTML, mas isso não funciona bem com o código HTML. :-(
1) Existe um modo melhor para editar arquivos HTML com partes Javascript?
2) Existe uma maneira de fazer o nxhtml usar o modo java padrão para as partes do javascript?
Saudações,
M
fonte
<script src>
. Você pode assistir a ambos com um pouco deC-x 2
ouC-x 3
e ter um modo para cada um. : - /Respostas:
Outra solução é
multi-web-mode
:https://github.com/fgallina/multi-web-mode
que pode ser mais facilmente configurável do que o já mencionado
multi-mode
.Você apenas configura seus modos preferidos em seu
.emacs
arquivo desta forma:Mais sobre os múltiplos modos múltiplos do Emacs (suspiro) aqui:
http://www.emacswiki.org/emacs/MultipleModes
ATUALIZAÇÃO: simplificou as expressões regulares para detectar áreas de JavaScript ou CSS para fazê-las funcionar com HTML5 - sem necessidade de expressões regulares superprecisas e frágeis.
fonte
(js-mode "<script[^>]*>" "</script>") (css-mode "<style[^>]*>" "</style>")
Eu escrevi o modo principal web-mode.el para este tipo de uso: edição de modelos HTML que incorporam JS, CSS, Java (JSP), PHP. Você pode baixá-lo em http://web-mode.org Web-mode.el faz realce de sintaxe e indentação de acordo com o tipo de bloco. A instalação é simples:
fonte
Ótima pergunta. Olha quantos votos favoráveis você conseguiu no primeiro!
Todos têm a mesma experiência que você. Eu também.
Em vez de confiar no nhtml-mode, que exibiu para mim o mesmo tipo de estranheza que você descreveu, procurei outra opção e encontrei multi-mode.el . É uma espécie de esqueleto multi-modo de uso geral. Para usá-lo, você precisa especificar expressões regulares para descrever onde um modo começa e outro termina. Então, você procura
<script...>
iniciar um bloco de javascript, e<style...>
iniciar um bloco de css. Então você conecta seus próprios modos para cada bloco - se você gosta de espresso para javascript, use-o. E assim por diante para as outras regexes que identificam outros blocos.Na prática, conforme você navega pelo documento, um modo diferente é ativado para cada bloco.
Usei multimodo para produzir um ASP.NET, que me permite editar C #, HTML, CSS e Javascript em um único arquivo, com o realce e a fonte adequados dependendo de onde o cursor está no buffer. Não é perfeito, mas descobri que é uma melhoria significativa nas possibilidades existentes. Na verdade, isso pode ser o que você deseja. Experimente.
https://code.google.com/p/csharpmode/source/browse/trunk/aspx-mode.el?r=14
fonte
Não é realmente uma boa solução, mas uma solução rápida se você realmente precisa ter javascript em seu html é selecionar a região que contém javascript e usar o comando
narrow-to-region
(C-x n n
) e, em seguida, alternar para o modo javascript de sua preferência. O comandowiden
traz você de volta, (C-x n w
).fonte
Parece que você configurou seu nxhtml incorretamente. A única configuração necessária deve ser carregar o
autostart.el
arquivo, e então tudo deve funcionar em algum nível. nxhtml não é perfeito de forma alguma, mas minhas experiências de usá-lo para html / css / javascript / mako são muito boas, pelo menos para tudo menos para mako. Mas tenho quase certeza de que estraguei tudo com a parte mako.É assim que inicializo meu nxhtml:
fonte