Apakah ada * baik * HTML-mode untuk emacs?

23

Saya suka emacs,

dan saya ingin melakukan pekerjaan pemrograman web di dalamnya,
tetapi saya tidak dapat menemukan cara untuk mengedit HTML dengan benar.

Maksud saya ini sangat mengerikan.

Ini akan menghasilkan HTML yang bagus, tetapi bukan PHP, javascript, dll.

Saya mencoba mendapatkan html-helper-mode ... Saya mengunduhnya, memasukkannya ke / usr / local / share / emacs / site-lisp, dan menambahkannya ke file .emacs saya:

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

disalin dan disisipkan dari beberapa situs (saya tidak tahu elisp).
hanya saja, tidak menonjolkan apa pun.

Saya mencoba mengunduh sejumlah mode dan menggunakan beberapa mode lain untuk merangkai keduanya, tetapi tidak berhasil.

Emacs sangat hebat dalam segala hal - mengapa tidak bisa melakukan tugas sederhana mengedit halaman web? Maksud saya, ini adalah hal yang cukup standar untuk dilakukan oleh editor akhir-akhir ini.

Jadi, adakah yang tahu bagaimana melakukan ini?

Carson Myers
sumber

Jawaban:

4

Sudahkah Anda memeriksa halaman html Emacs Wiki ? nxhtml khususnya terlihat bermanfaat.

luapyad
sumber
4
itu terlihat berguna tetapi sangat menyakitkan untuk digunakan ... itu memuat perlahan, tidak indentasi dengan benar, jelek, berjalan lambat, menyoroti semuanya merah dan kemudian membuatnya semuanya miring dan adil, menyakitkan ...
Carson Myers
1
Saya telah menggunakan nxhtml dengan sukses. Warna font dan huruf miring semuanya dapat dikontrol dengan menyesuaikan wajah
Doug Harris,
35

Saya memiliki masalah yang sama seperti Anda, jadi saya memutuskan untuk menulis mode web .

masukkan deskripsi gambar di sini

Web-mode.el adalah mode utama untuk Emacs yang dimaksudkan untuk mengedit templat web campuran (HTML dengan Java / JSP, PHP, CSS, JavaScript).

Itu tidak bergantung pada mode lain. Itu menyoroti sintaks dan indentasi sesuai dengan jenis blok kode. Saya telah menulis halaman HOWTO kecil di

Tentang

  • web-mode.el adalah mode utama untuk mengedit templat web (HTML dengan PHP, Java / JSP, JavaScripts, gaya CSS).
  • web-mode.elini tidak akan pernah menjadi fitur penuh PHP atau mode JS. (Kami tidak menganjurkan multi-baris blok kode dalam templat!).

Fitur Asli

  • indentasi pintar (sesuai dengan konteks: HTML, PHP, Java / JSP, JavaScript atau CSS)
  • navigasi kode: C-c C-nantara membuka dan menutup tag HTML atau antara kontrol PHP> - jika ... else ... endif, for ... endfor
  • Tag HTML penutupan otomatis (setelah
  • penyorotan sintaks (sesuai dengan tipe blok)
  • penyisipan cuplikan C-c C-i(indentasi otomatis, sadar akan pemilihan teks)
  • sisipan otomatis (mis. ?>setelah <?php)
fxbois
sumber
Pergi untuk mengatakan, itu menyelamatkan hari saya ... Terima kasih @ fxbois! Aku menyukainya. Akhirnya saya bisa mendapatkan lekukan campuran antara html, css, java, dll. Apakah bisa dilakukan dengan Python?
swdev
@swdev dapatkah Anda membuka masalah di github tentang permintaan kompatibilitas python ini. Dapat mengirim tautan ke dokumentasi sintaksis templat dan contoh templat tersebut.
fxbois
Terlihat rapi, tetapi tampaknya menggunakan regexp untuk parsing HTML, daripada memiliki parser nyata seperti psgml ...
David N. Welton
3
Apa yang Anda maksud dengan pengurai nyata? Saya menjelajahi dokumen untuk menemukan tag yang dimulai dengan <dan diakhiri dengan> dll. Apakah Anda menemukan batasan? Jika Anda menemukannya, jangan ragu untuk melaporkan masalah pada github repo
fxbois
3

Saya sudah tidak puas dengan mode yang tersedia, tetapi saya telah menemukan kebahagiaan baru-baru ini menggunakan lama biasa html-modeditambah dengan yasnippetdan tidy.el. Seperti jawaban lain yang disebutkan mode nxhtml berguna jika Anda menulis xhtml.

Jika Anda ingin mendapatkan php dan javascript yang disorot, Anda mungkin ingin melihatnya mmm-mode, yang akan memungkinkan Anda untuk menjalankan beberapa mode utama sekaligus. Saya tidak pernah menggunakannya, jadi saya tidak tahu siapa yang menangani ikatan kunci yang saling bertentangan, dll ... jadi Anda harus merasakan jalan di sekitar sana.

Pinochle
sumber
3

Berikan mode multi-web mencoba, itu adalah modus kecil dirancang dengan web mengedit dalam pikiran, memilih utama tepat ketika titik bergerak di sekitar.

skwee rell
sumber
0

Saya juga menggunakan mode nXhtml untuk pengeditan mode campuran karena gagal menjalankan Beberapa Mode dengan benar. Ini memang sedikit perjalanan yang berbatu-batu, tetapi bangunan baru-baru ini terbukti bermanfaat. Saya menjalankan dengan Emacs 23 FWIW.

stsquad
sumber