Anzeige:
Ergebnis 1 bis 1 von 1

Thema: [Arbeiten mit Emacs] - Syntaxhighlighting

  1. #1
    Premium Mitglied Avatar von dragon's might
    Registriert seit
    Apr 2002
    Beiträge
    1.967

    [Arbeiten mit Emacs] - Syntaxhighlighting

    [Arbeiten mit Emacs] - Web Programmierung - Syntaxhighlighting v0.0001a




    1. Der Emacs



    Unter GNU/Linux gibt es viele Editoren, doch keiner ist so umfangreich wie der Emacs.
    Der wichtigste Vorteil des Emacs gegenüber anderen Editoren besteht darin, dass er
    beliebig erweiter- und programmmierbar ist. Also kein Wunder das man mit ihm auch Kaffe kochen(Und ich meine nicht nur Java programmieren) ;-). Wenn man anspruchsvolle Projekte planen oder größere Textmengen effizient verarbeiten will, führt am Emacs praktisch kein Weg vorbei. Es gibt den GNU Emacs und den XEmacs, welchen man benutzen will bleibt einem selbst überlassen - ich benutze den GNU Emacs. (Dieses How-To ist auf beide anwendbar). In diesem How-To beschäftigen wir uns mit dem Syntaxhighlighting verschiedener Sprachen unter Emacs. In erster Linie auf Sprachen zur programmierung von Webseiten (PHP, HTML, CSS, SGML etc.), aber man kann das How-To auch auf andere Sprachen anwenden, indem man die Emacskonfigurationsdatei entsprechent (~/.emacs) editiert.
    Doch zunächst

    2. Die wichtigsten Kommandos


    Code:
    STRG + X      Zusatzkommando               Wirkung
    
                  STRG + F datei ENTER     Datei laden (find)
    
                  I                        Datein in den vorhandenen Text einfügen (insert)
    
                  STRG + S                 Datei speichern (save)
    
                  S, !                     Alle offenen Dateien speichern
    
                  STRG + W datei ENTER     Datei unter neuem Namen spreichern (write)
    
                  S                        Alle Dateien (mit Rückfrage) speichern
    
                  STRG + C                 Emacs verlassen

    3. Durchforsten von EmacsWiki


    Die erste Anlaufadresse für Zusatzprogramme und ähnliches ist neben der oben genannten GNU (Emacs) Seite www.emacswiki.org. Hier gibt es folgende Seiten durch die ich mich mittels der Suchfunktion (am unteren Ende der Seite)
    von ElispArea geschlagen habe:



    1. http://www.emacswiki.org/cgi-bin/wiki.pl/HtmlMode

    2. http://www.emacswiki.org/cgi-bin/wiki.pl/PhpMode

    3. http://www.emacswiki.org/cgi-bin/wiki.pl/HtmlModeDeluxe


    HTML-Highlighting (html-mode) und PHP-Highlighting (php-mode) gibt es beim Emacs oft schon standartmäßig, wenn nicht sollte man sich an den Links bedienen oder die Suche in der ElispArea benutzen. Den psgml-mode und den css-mode kann man dort auch finden. Diese "Mode"-dateien haben die Endung *.el oder *.elc und werden in das Lisp Verzeichnis des (X)Emacs kopiert. Bei mir liegt dieses Verzeichnis in /usr/share/emacs und heißt 'site-lisp'. Hat man alle Dateien die man will kommt mmm-mode ins Spiel. Dieses Programm kombiniert die verschiedenen Highlightings und bringt neue komfortable Kommandos zum Einfügen von Tags für die jeweilige Sprache mit. Hier ein Bild und die Beschreibung für die ~/.emacs Datei. Die .emacs Datei muss editiert und um diese Zeilen erweitert werden:


    Code:
        ;;************************************************************
        ;; configure HTML editing
        ;;************************************************************
        ;;
        (require 'php-mode)
        ;;
        ;; configure css-mode
        (autoload 'css-mode "css-mode")
        (add-to-list 'auto-mode-alist '("\\.css\\'" . css-mode))
        (setq cssm-indent-function #'cssm-c-style-indenter)
        (setq cssm-indent-level '2)
        ;;
        (add-hook 'php-mode-user-hook 'turn-on-font-lock)
        ;;
        (require 'mmm-mode)
        (setq mmm-global-mode 'maybe)
        ;;
        ;; set up an mmm group for fancy html editing
        (mmm-add-group
         'fancy-html
         '(
                 (html-php-tagged
                        :submode php-mode
                        :face mmm-code-submode-face
                        :front "<[?]php"
                        :back "[?]>")
                 (html-css-attribute
                        :submode css-mode
                        :face mmm-declaration-submode-face
                        :front "style=\""
                        :back "\"")))
        ;;
        ;; What files to invoke the new html-mode for?
        (add-to-list 'auto-mode-alist '("\\.inc\\'" . html-mode))
        (add-to-list 'auto-mode-alist '("\\.phtml\\'" . html-mode))
        (add-to-list 'auto-mode-alist '("\\.php[34]?\\'" . html-mode))
        (add-to-list 'auto-mode-alist '("\\.[sj]?html?\\'" . html-mode))
        (add-to-list 'auto-mode-alist '("\\.jsp\\'" . html-mode))
        ;;
        ;; What features should be turned on in this html-mode?
        (add-to-list 'mmm-mode-ext-classes-alist '(html-mode nil html-js))
        (add-to-list 'mmm-mode-ext-classes-alist '(html-mode nil embedded-css))
        (add-to-list 'mmm-mode-ext-classes-alist '(html-mode nil fancy-html))
        ;;
        ;; Not exactly related to editing HTML: enable editing help with mouse-3 in all sgml files
        (defun go-bind-markup-menu-to-mouse3 ()
                (define-key sgml-mode-map [(down-mouse-3)] 'sgml-tags-menu))
        ;;
        (add-hook 'sgml-mode-hook 'go-bind-markup-menu-to-mouse3)
    Falls man einen weiteren Modus hinzufügen oder einen entfernen will, ist die Datei, wie oben schon gesagt, entsprechent zu editieren.

    4. Multiple Major Modes (MMM) installieren


    So, dieses MMM muss man ja auch noch installieren :).
    Das ist ganz einfach, entweder man installiert es per CVS oder per *.tar.gz-Packet. Die Projektpage auf soruceforge.net beinhaltet im Moment die Version 0.4.7, doch die CVS Version wird von dem Entwickler eher empfohlen, da die Funktionen ausgereiften sind.

    CVS




    Code:
    cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/mmm-mode login
     
    cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/mmm-mode co modulename
    Für anonymous braucht man kein Passwort, einfach Enter drücken.
    Dann wie immer:

    Code:
    ./configure
    make
    su
    make install (bzw. checkinstall)

    Als nächstes müssen die *.el(c) Dateien in das Lisp-Verzeichnis kopiert werden.
    Falls einem das Packet lieber ist geht man so vor:


    Code:
    tar -xzf mmm-mode-x.x.x.tar.gz
    cd mmm-mode-x.x.x
    ./configure
    make
    su
    make install (bzw. checkinstall)
    Der Rest funktioniert wie beim CVS.

    Fertig!

    Have a lot of fun and may the GNU be with you ;) !

    Die HTML-Version gibt's hier: http://www.punkroom.de.tf/doc/emacs.html
    Geändert von dragon's might (26.06.03 um 20:13 Uhr)
    צה"ל

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •